我有一个数据框,其元素为:
df1[1:4]
Sims
2014-01-02 [51, 53, 51, 3...
2014-01-03 [56, 48, 64, ...
2014-01-04 [57, 45, 47, ...
sims是每个500个元素的列表。
我有另一个数据框:
df2[1:4]
Date Month Day HE Year
DateTime
2012-01-01 02:00:00 2012-01-01 1.0 1.0 2.0 2012.0
2012-01-01 03:00:00 2012-01-01 1.0 1.0 3.0 2012.0
2012-01-01 04:00:00 2012-01-01 1.0 1.0 4.0 2012.0
我正在尝试以下各种配置:
df1[df2['Date']]
但它错误地抱怨df1
索引和df2['Date']
之间的时间格式差异。但是,两者的格式相同,如下所示。
df1.index[1:4]
DatetimeIndex(['2014-01-02', '2014-01-03', '2014-01-04'], dtype='datetime64[ns]', freq=None)
df2['Date'][1:4].values
array(['2012-01-01T00:00:00.000000000', '2012-01-01T00:00:00.000000000',
'2012-01-01T00:00:00.000000000'], dtype='datetime64[ns]')
如何进行以下工作:
df1[df2['Date']]
编辑: 错误讯息:
KeyError: "['2012-01-01T00:00:00.000000000' '2012-01-01T00:00:00.000000000'\n '2012-01-01T00:00:00.000000000' ..., '2016-12-31T00:00:00.000000000'\n '2016-12-31T00:00:00.000000000' '2016-12-31T00:00:00.000000000'] not in index"
答案 0 :(得分:2)
df1[df2['Date']]
类型的索引往往会出错。问题可能是你让pandas
猜测你要切割的轴,这并不总是按照需要进行。
您可以尝试使用更明确的索引方法,例如df1.loc[df2['Date'], :]
或df1.xs(df2['Date'], 0)
。