我有以下原始数据
TranID,TranDate,TranTime,TranAmt
A123456,20160427,02:18,9999.53
B123457,20160426,02:48,26070.33
C123458,20160425,03:18,13779.56
A123459,20160424,03:18,18157.26
B123460,20160423,04:18,215868.15
C123461,20160422,04:18,23695.25
A123462,20160421,05:18,57
B123463,20160420,05:18,64594.24
C123464,20160419,06:18,47890.91
A123465,20160427,06:18,14119.74
B123466,20160426,07:18,2649.6
C123467,20160425,07:18,16757.38
A123468,20160424,08:18,8864.78
B123469,20160423,08:18,26254.69
C123470,20160422,09:18,13206.98
A123471,20160421,09:18,15872.45
B123472,20160420,10:18,197621.18
C123473,20160419,10:18,21048.72
我试着用pd read_csv导入原始数据
尝试1
^{pr2}$输出1
TranID object
TranDate datetime64[ns]
TranTime object
TranAmt float64
dtype: object
Out[12]:
TranID TranDate TranTime TranAmt
0 A123456 2016-04-27 02:18 9999.53
1 B123457 2016-04-26 02:48 26070.33
2 C123458 2016-04-25 03:18 13779.56
3 A123459 2016-04-24 03:18 18157.26
4 B123460 2016-04-23 04:18 215868.15
尝试2
import numpy as np
import pandas as pd
df = pd.read_csv('MyTest.csv', sep=',', header=0, parse_dates=['TranDate', 'TranTime'],
usecols=['TranID','TranDate','TranTime','TranAmt'],
engine='python')
print(df.dtypes)
df[:5]
输出2
TranID object
TranDate datetime64[ns]
TranTime datetime64[ns]
TranAmt float64
dtype: object
Out[13]:
TranID TranDate TranTime TranAmt
0 A123456 2016-04-27 2016-04-27 02:18:00 9999.53
1 B123457 2016-04-26 2016-04-27 02:48:00 26070.33
2 C123458 2016-04-25 2016-04-27 03:18:00 13779.56
3 A123459 2016-04-24 2016-04-27 03:18:00 18157.26
4 B123460 2016-04-23 2016-04-27 04:18:00 215868.15
我对TranTime专栏感到困惑。在Try1中,它显示正确,但dtype是object。在Try2中,pd将当前日期添加到时间中,数据类型为datetime。在
我希望将这个transtime列视为Time,并使用pd的groupby或pivot_表执行聚合。 如果我使用Try1方法,对象数据类型是否影响聚合? 如果我使用Try2方法,是否需要去掉日期部分才能使用时间部分?在
我精通SAS,SAS有日期、时间和日期时间信息,并且基础数据类型只是数字的格式。因此,我对Python的object和datetime数据类型感到困惑。在
谢谢, 说客
使用嵌套括号
^{pr2}$parse_dates=[[]]
尽可能将日期/时间作为一列进行解析和管理。在得到你想要的东西。在
您仍然可以在resampling之后进行groupby,如下所示。在
在Python中,日期时间通常表示为datetime.datetime对象。这些不是很有效,这就是Pandas使用时间戳的原因,时间戳是数字的。在
要读取数据(请注意
parse_dates
参数前后的双括号):日期和时间列仅联接到一列。一旦您有了这个时间戳,就很容易使用
^{pr2}$dt
访问器访问它的属性,例如有关Pandasdate functionality的更多信息,请参阅Pandas文档。在
相关问题 更多 >
编程相关推荐