将日期和时间转换为时间戳

时间:2021-07-09 10:17:10

标签: pandas

我的数据集日期和时间中有两列,我想将这两列都转换为时间戳,这意味着我传递了日期和时间,我可以单独为每个人编制索引,但我将它们都添加到索引中,我们将不胜感激。

df= pd.read_csv('Data',parse_dates=['Date',' Time'])
#I end up having both coulmns but I want to merge them in one as a time stamp and then index them 

df.set_index('Date_ Time') 
# it says that there is no Time in columns 

#any ideas?

谢谢

2 个答案:

答案 0 :(得分:0)

如果您的 csv 如下所示:

Date,Time
2021-07-09,11:00:00
2021-07-09,12:00:00
2021-07-09,13:00:00
2021-07-09,14:00:00
2021-07-09,15:00:00

您可以使用此方法创建 DateTimeIndex:

# Read csv without parse dates
df = pd.read_csv('Data')
print(df)

         Date      Time
0  2021-07-09  11:00:00
1  2021-07-09  12:00:00
2  2021-07-09  13:00:00
3  2021-07-09  14:00:00
4  2021-07-09  15:00:00

# Combine columns and set index
df = df.set_index(pd.to_datetime(df['Date'] + ' ' + df['Time']))
print(df)

                           Date      Time
2021-07-09 11:00:00  2021-07-09  11:00:00
2021-07-09 12:00:00  2021-07-09  12:00:00
2021-07-09 13:00:00  2021-07-09  13:00:00
2021-07-09 14:00:00  2021-07-09  14:00:00
2021-07-09 15:00:00  2021-07-09  15:00:00

答案 1 :(得分:0)

如果将 [] 添加到 [['Date','Time']]

df = pd.read_csv('Data',parse_dates=[['Date',' Time']])

那么您的解决方案运行良好。

df.set_index('Date_ Time') 

或者使用:

df = pd.read_csv('Data',parse_dates=[['Date',' Time']], index_col=[0])

df = pd.read_csv('Data',parse_dates=[['Date',' Time']], index_col=['Date_ Time'])