【问题标题】:Pandas: reset_index after pd.PeriodIndex熊猫:pd.PeriodIndex 之后的 reset_index
【发布时间】:2019-01-12 04:43:50
【问题描述】:

您好,我在创建列 groupby 和 PeriodIndex 后重置索引时遇到问题。

City_Zhvi_AllHomes.csv

housing = pd.read_csv('City_Zhvi_AllHomes.csv')
housing.drop(housing.columns[[0, 3, 4, 5]], axis=1, inplace=True)
housing.replace({'State': states}, inplace=True)
housing.set_index(['State', 'RegionName'], inplace=True)
housing.drop(housing.columns[housing.columns < '2000' ].tolist(), axis=1, inplace=True)
housing = housing.groupby(pd.PeriodIndex(housing.columns, freq='Q'), axis=1).mean()

我必须创建一些多索引,以便我可以创建一些频率并更改其余列,在我做到这一点之后,我想重置索引。

housing.reset_index()

此函数不会返回错误,但它不会进行更改并且多索引仍然存在。

我也无法在数据框中添加一些列,即:

housing['new_column'] = None

但我想重置所有内容,以便再次操作。

【问题讨论】:

  • “也无法添加一些列” - 会发生什么?
  • 您好,我无法查询列。 :( 即住房['2008Q3']
  • 得到了这个错误:pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4433)() KeyError: '2008Q3'
  • 您必须提供一个示例,说明您尝试做什么、数据是什么以及什么不起作用。既然这是一个不同的问题,你应该问另一个问题。

标签: python pandas


【解决方案1】:

housing.reset_index() 返回数据框的副本。保存此副本:

housing = housing.reset_index()

或请求就地修改:

housing.reset_index(inplace=True)

【讨论】:

  • 哇哇哇!?有效。我一直在抓挠。我以为是 PeriodIndex。
猜你喜欢
  • 2017-02-08
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
  • 1970-01-01
  • 2018-05-07
  • 2021-10-02
  • 2019-04-12
  • 2018-09-26
相关资源
最近更新 更多