我在询问之前已经彻底搜索了一个答案,但我能找到的就是如何将我的csv文件的一列转换为日期时间对象。
我的问题是,我的文件有一个单独的列,分别为年,月,日,小时,分钟,而且我一直在努力转换并合并它们。
非常感谢任何帮助。
文件内容负责人: viewed in excel
答案 0 :(得分:2)
您可以将read_csv
与参数parse_dates
和date_parser
一起使用。另请参阅docs:
import pandas as pd
from pandas.compat import StringIO
temp=u"""year,month,day,hour,minute,a
2017,09,01,10,20,1
2017,10,01,10,20,2
2017,11,01,10,20,3"""
#after testing replace 'StringIO(temp)' to 'filename.csv'
parser = lambda x: pd.datetime.strptime(x, '%Y %m %d %H %M')
df = pd.read_csv(StringIO(temp),
parse_dates={'date':['year','month','day','hour','minute']},
date_parser=parser)
print (df)
date a
0 2017-09-01 10:20:00 1
1 2017-10-01 10:20:00 2
2 2017-11-01 10:20:00 3
答案 1 :(得分:2)
我会写一个简单的方法。
假设有一个类似下面的CSV文件。
year,month,day,hour,minute
2017,1,1,23,59
2017,2,1,23,59
2017,3,1,23,59
您可以解析csv并创建日期时间对象。
import csv
from datetime import datetime
with open('test.csv') as fp:
reader = csv.reader(fp)
next(reader) # skip header
for row in reader:
row = [int(r) for r in row]
print(datetime(row[0], row[1], row[2], row[3], row[4]))
结果是这样的。
2017-01-01 23:59:00
2017-02-01 23:59:00
2017-03-01 23:59:00
THX:)
答案 2 :(得分:0)
这可能是一本小手册,但你可以: