【问题标题】:Transforming a column index in Python pandas在 Python pandas 中转换列索引
【发布时间】:2016-10-24 13:11:53
【问题描述】:

我有以下数据框:

   index    PUBLICO     CLASSIFICACAO_PUBLICO
0   19      143643          1
1   34      111879          2
2   31       50382          3
3   9        49204          4
4   32       37541          5
5   4        36095          6

我需要将索引名称列转换为索引列。

例如:

index   PUBLICO     CLASSIFICACAO_PUBLICO
19      143643          1
34      111879          2
31       50382          3
9        49204          4
32       37541          5
4        36095          6

我尝试使用df.set_index('index'),但没有用。

之前名称为index的列是DataFrame的索引列,但我使用了reset_index();现在我需要做相反的事情。

【问题讨论】:

  • 您的预期输出是什么? df1 = df.set_index('index'); df1.index.name=None 在我这边工作得很好。
  • “没有用”是什么意思?你收到错误信息了吗?意想不到的结果?请编辑您的问题以添加该信息。
  • 你传递参数inplace=True了吗? set_index 返回 df 的副本,并将索引设置为您的列

标签: python pandas indexing


【解决方案1】:

set_index 方法不能就地工作。所以你必须重新分配你的数据框,或者传递选项inplace = True

df = df.set_index('index')

df.set_index('index',inplace = True)

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.set_index.html

【讨论】:

    【解决方案2】:

    你可以这样试试:

    df.set_index(df['index'], inplace=True)
    

    这会将您的 index 列设置为数据框中的索引,并且您的 index 列仍将保留在您的数据框中。然后,您可以删除该列。

    df.drop('index', axis=1, inplace=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-04
      • 2021-12-17
      • 2016-09-26
      • 2017-03-04
      • 2021-11-30
      • 2016-12-01
      • 2018-10-30
      相关资源
      最近更新 更多