![](/img/trans.png)
[英]How can I combine datetime.date and datetime.time columns in pandas dataframe?
[英]How do I combine two columns of date and time in a csv file to 1 datetime column in pandas?
我得到了具有以下格式的csv文件:
日期;时间; DD; FH; FF; FX;吨;
20110101; 1; 240; 30; 30; 40; 15;
20110101; 2; 250; 30; 40; 60; 18;
20110101; 3; 250; 40; 40; 70; 21;
20110101; 4; 250; 40; 30; 60; 20;
20110101; 5; 250; 40; 40; 60; 21;
我想要一个将日期和时间列组合为1 datetime的熊猫数据框。 我尝试了以下代码来做到这一点:
deelen = pandas.read_csv('Deelen2.csv', parse_dates = [[0,1]], header = 0, index_col = 0, delimiter=';', low_memory=False)
我得到以下输出:
>>> deelen.head()
DD FH FF FX T
date_time
20110101 1 240 30 30 40 15
20110101 2 250 30 40 60 18
20110101 3 250 40 40 70 21
20110101 4 250 40 30 60 20
20110101 5 250 40 40 60 21
因此,日期和时间合并在1列中,但不是日期时间。
我也尝试过:
>>> deelen = pandas.read_csv('Deelen2.csv', parse_dates = {'datetime' : [0,1]}, header = 0, index_col = ['datetime'], delimiter=';')
但这给出了类似的输出:
DD FH FF FX T
datetime
20110101 1 240 30 30 40 15
20110101 2 250 30 40 60 18
20110101 3 250 40 40 70 21
20110101 4 250 40 30 60 20
20110101 5 250 40 40 60 21
由于某种原因,它无法正常工作。我正在使用Python 2.7和pandas 0.18.0
先谢谢您的帮助
确定以下工作:
In [140]:
import io
import pandas as pd
t="""date;time;DD;FH;FF;FX;T;
20110101;1;240;30;30;40;15;
20110101;2;250;30;40;60;18;
20110101;3;250;40;40;70;21;
20110101;4;250;40;30;60;20;
20110101;5;250;40;40;60;21;"""
df = pd.read_csv(io.StringIO(t), sep=';', dtype=({'date':str}))
df['date_time'] = pd.to_datetime(df['date']) + pd.TimedeltaIndex(df['time'], unit='H')
df
Out[140]:
date time DD FH FF FX T Unnamed: 7 date_time
0 20110101 1 240 30 30 40 15 NaN 2011-01-01 01:00:00
1 20110101 2 250 30 40 60 18 NaN 2011-01-01 02:00:00
2 20110101 3 250 40 40 70 21 NaN 2011-01-01 03:00:00
3 20110101 4 250 40 30 60 20 NaN 2011-01-01 04:00:00
4 20110101 5 250 40 40 60 21 NaN 2011-01-01 05:00:00
这里我指定的dtype
为date
列str
然后我转换这一点,并构建一个TimedeltaIndex
从你的时间列,这增加的结果to_datetime
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.