将 CSV 值转换为日期时间并在 python 中创建函数

我已经尝试在这里搜索其他帖子,但似乎无法解决这个问题。我有一个 CSV 文件,其中 Year、Crash_Month、Crash_Day 和 Crash_Time 都是 CSV 'data_dict' 中的单独列。我正在尝试解决以下问题。我该怎么办?我尝试使用数据框,并且 pandas 转换为日期时间,但我不确定这是否是正确的方法。非常感谢


这是我试图将日期时间分配给的数据框


    year  month  day       time

0   2000      1    1   4:30:59 

1   2000      1    1   0:07:35 

2   2000      1    1   4:51:37 

3   2000      1    1   4:27:56 

4   2000      1    1   2:16:31 

5   2000      1    1   0:37:21 

6   2000      1    1   0:52:57 

7   2000      1    1   3:35:14 

8   2000      1    1   2:41:58 

9   2000      1    1   3:43:02 

10  2000      1    1   3:49:19 

11  2000      1    1   3:03:55 

12  2000      1    1   4:46:01 

13  2000      1    1   1:07:24 

14  2000      1    1   8:29:04 

15  2000      1    1   6:35:21 

16  2000      1    1   6:06:25 

17  2000      1    1   7:10:13 

18  2000      1    1   10:57:24 

19  2000      1    1   7:54:38

到目前为止,我已经对此进行了编码。


import pandas as pd


df = pd.DataFrame({'year': (data_dict['Year']),

                   'month': (data_dict['Crash_Month']),

                   'day': (data_dict['Crash_Day']),

                   'time': (data_dict['Crash_Time'])})


date=pd.to_datetime(df[["year", "month", "day", "time"]],format='%YYYY%mm%dd, %HH%MM%SS')

print(date)


day_of_week = {0 : 'Monday',

              1: 'Tuesday',

              2: 'Wednesday',

              3: 'Thursday',

              4: 'Friday',

              5: 'Saturday',

              6: 'Sunday'}


month_season= {1: 'Summer',

              2: 'Summer',

              3: 'Autumn',

              4: 'Autumn',

              5: 'Autumn',

              6: 'Winter',

              7: 'Winter',

              8: 'Winter',

              9: 'Spring',

              10: 'Spring',

              11: 'Spring',

              12: 'Summer'}


哆啦的时光机
浏览 96回答 1
1回答

函数式编程

我们可以使用str.zfill和字符串连接pd.to_datetime来构建您的日期时间。df2['date'] = pd.to_datetime(df2['year'].astype(str)                + df2['month'].astype(str).str.zfill(2)               + df2['day'].astype(str).str.zfill(2)               + ' '               + df2['time'].astype(str),format='%Y%m%d %H:%M:%S'              )    year  month  day       time                date0   2000      1    1   4:30:59  2000-01-01 04:30:591   2000      1    1   0:07:35  2000-01-01 00:07:352   2000      1    1   4:51:37  2000-01-01 04:51:373   2000      1    1   4:27:56  2000-01-01 04:27:564   2000      1    1   2:16:31  2000-01-01 02:16:315   2000      1    1   0:37:21  2000-01-01 00:37:216   2000      1    1   0:52:57  2000-01-01 00:52:577   2000      1    1   3:35:14  2000-01-01 03:35:148   2000      1    1   2:41:58  2000-01-01 02:41:589   2000      1    1   3:43:02  2000-01-01 03:43:0210  2000      1    1   3:49:19  2000-01-01 03:49:1911  2000      1    1   3:03:55  2000-01-01 03:03:5512  2000      1    1   4:46:01  2000-01-01 04:46:0113  2000      1    1   1:07:24  2000-01-01 01:07:2414  2000      1    1   8:29:04  2000-01-01 08:29:0415  2000      1    1   6:35:21  2000-01-01 06:35:2116  2000      1    1   6:06:25  2000-01-01 06:06:2517  2000      1    1   7:10:13  2000-01-01 07:10:1318  2000      1    1  10:57:24  2000-01-01 10:57:2419  2000      1    1   7:54:38  2000-01-01 07:54:38
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python