我有一个Pandas数据框,其值如下ProcessID1 UserID Date Month Year Time 248 Tony 29 4 2017 23:30:56 436 Jeff 28 4 2017 20:02:19 500 Greg 4 5 2017 11:48:29我想知道是否有任何方法可以将日期、月份、年份和时间列合并为pd.datetime?
ProcessID1 UserID Date Month Year Time 248 Tony 29 4 2017 23:30:56 436 Jeff 28 4 2017 20:02:19 500 Greg 4 5 2017 11:48:29
pd.datetime
14ifxucb1#
将to_datetime与自动转换列Day,Month,Year一起使用,加上time s转换后的to_timedelta:
to_datetime
Day,Month,Year
time
to_timedelta
df['Datetime'] = pd.to_datetime(df.rename(columns={'Date':'Day'})[['Day','Month','Year']]) + \ pd.to_timedelta(df['Time'])
另一种解决方案是先将所有列转换为string:x一个一个一个一个x一个一个二个一个x一个一个三个一个最后,如果需要,请删除这些列:
string
df = df.drop(['Date','Month','Year', 'Time'], axis=1) print (df) ProcessID1 UserID Datetime 0 248 Tony 2017-04-29 23:30:56 1 436 Jeff 2017-04-28 20:02:19 2 500 Greg 2017-05-04 11:48:29
pjngdqdw2#
将这些列连接在一起,形成字符串格式,并使用pd.to_datetime转换为datetime。
import pandas as pd import io txt = """ ProcessID1 UserID Date Month Year Time 248 Tony 29 4 2017 23:30:56 436 Jeff 28 4 2017 20:02:19 500 Greg 4 5 2017 11:48:29 """ df = pd.read_csv(io.StringIO(txt), sep="[\t ,]+") df['Datetime'] = pd.to_datetime(df['Date'].astype(str) \ + '-' + df['Month'].astype(str) \ + '-' + df['Year'].astype(str) \ + ' ' + df['Time'], format='%d-%m-%Y %H:%M:%S') df
5tmbdcev3#
import pandas as pd
您也可以使用apply()方法来完成此操作:-
apply()
df['Datetime']=df[['Year','Month','Date']].astype(str).apply('-'.join,1)+' '+df['Time']
最后使用pandasto_datetime()方法将**'日期时间'**转换为日期时间数据类型:-
pandas
to_datetime()
df['Datetime']=pd.to_datetime(df['Datetime'])
df的输出:
df
ProcessID1 UserID Date Month Year Time Datetime 0 248 Tony 29 4 2017 23:30:56 2017-04-29 23:30:56 1 436 Jeff 28 4 2017 20:02:19 2017-04-28 20:02:19 2 500 Greg 4 5 2017 11:48:29 2017-05-04 11:48:29
现在,如果要删除**“日期”、“月份”、“年份”和“时间”**列,请用途:-
df=df.drop(columns=['Date','Month','Year', 'Time'])
3条答案
按热度按时间14ifxucb1#
将
to_datetime
与自动转换列Day,Month,Year
一起使用,加上time
s转换后的to_timedelta
:另一种解决方案是先将所有列转换为
string
:x一个一个一个一个x一个一个二个一个x一个一个三个一个
最后,如果需要,请删除这些列:
pjngdqdw2#
将这些列连接在一起,形成字符串格式,并使用pd.to_datetime转换为datetime。
5tmbdcev3#
您也可以使用
apply()
方法来完成此操作:-最后使用
pandas
to_datetime()
方法将**'日期时间'**转换为日期时间数据类型:-df
的输出:现在,如果要删除**“日期”、“月份”、“年份”和“时间”**列,请用途:-