Python:我的日期索引出了什么问题?

我有一个使用日期作为索引的数据框。尽管我可以从series.index中读取索引值,但是我无法获得相应的记录。

series = pd.DataFrame([[datetime.date(2019,1,1),'A',4],[datetime.date(2019,2),'B',6]],columns = ('Date','Index','Value'))
series2 = series.pivot(index='Date',columns='Index',values='Value')
index = series2.index[0]

到目前为止,一切正常。 但是这一行代码失败了:

row = series[index]

错误消息是

KeyError: datetime.date(2019,1)

为什么会失败,我该如何解决?

lesswell 回答:Python:我的日期索引出了什么问题?

使用Series.loc进行选择,但在series2中使用,因为在series中是RangeIndex,而不是日期:

row = series2.loc[index]
print (row)
Index
A    4.0
B    NaN
Name: 2019-01-01,dtype: float64

详细信息

print (series)
         Date Index  Value
0  2019-01-01     A      4
1  2019-01-02     B      6

print (series.index)
RangeIndex(start=0,stop=2,step=1)

print (series2)
Index         A    B
Date                
2019-01-01  4.0  NaN
2019-01-02  NaN  6.0
,

在您的三行之后添加此部分: series.set_index('Date',inplace=True)

所以,整个事情是:

import pandas as pd
import datetime

series = pd.DataFrame([[datetime.date(2019,1,1),'A',4],[datetime.date(2019,2),'B',6]],columns = ('Date','Index','Value'))
series2 = series.pivot(index='Date',columns='Index',values='Value')
index = series2.index[0]
series.set_index('Date',inplace=True) # this part was added
series.loc[index]
Out[57]: 
Index    A
Value    4
Name: 2019-01-01,dtype: object
本文链接:https://www.f2er.com/3144256.html

大家都在问