如何在groupby之后然后在PeriodIndex之后查询列。这是我第一个回答的问题的后续行动。
我无法查询以句点命名的列。例如:
housing['2008Q3']
这是返回的错误:
pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4433)()
pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4279)()
pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13742)()
pandas/src/hashtable_class_helper.pxi in pandas.hashtable.PyObjectHashTable.get_item (pandas/hashtable.c:13696)()
KeyError: '2008Q3'
我学到的东西:当我列出我的专栏时,它返回:
['State',
'RegionName',
Period('2008Q3', 'Q-DEC'),
Period('2008Q4', 'Q-DEC'),
Period('2009Q1', 'Q-DEC'),
Period('2009Q2', 'Q-DEC'),
Period('2009Q3', 'Q-DEC'),
Period('2009Q4', 'Q-DEC')]
我想取消句点,只是将它们设为字符串。 我尝试过
housing[Period('2009Q4', 'Q-DEC')]
但是让我看到这个错误:
name 'Period' is not defined
哈哈
答案 0 :(得分:1)
您可以先将列转换为字符串,如下所示:
housing.columns=housing.columns.to_series().astype(str)
然后您可以通过其str名称访问列:
housing['2008Q3'].head()
0 499766.666667
1 469500.000000
2 232000.000000
3 116933.333333
4 193766.666667
Name: 2008Q3, dtype: float64