【问题标题】:Rename several unnamed columns in a pandas dataframe重命名熊猫数据框中的几个未命名列
【发布时间】:2017-01-26 11:42:40
【问题描述】:

我从 Kaggle 的 San Francisco Salaries 数据库导入了一个 csv 作为数据框

df=pd.read_csv('Salaries.csv')

我从“df”创建了一个数据框作为聚合函数

df2=df.groupby(['JobTitle','Year'])[['TotalPay']].median()

问题 1:第一列和第二列显示为无名,这不应该发生。

即使我使用的代码

df2.columns

它只将 TotalPay 命名为一列

问题 2:例如,我尝试将第一列重命名为 JobTitle 并且代码没有执行任何操作

df3=df2.rename(columns = {0:'JobTitle'},inplace=True)

所以这里给出的解决方案显然不起作用:Rename unnamed column pandas dataframe。

我希望有两种可能的解决方案: 1) 聚合函数尊重列命名 AND/OR 2) 重命名空数据框的列

【问题讨论】:

  • 试试这个:df3 = df2.reset_index()
  • 太棒了!这解决了我的问题,您能否将其发布为答案,以便我们给予您信任?谢谢!
  • 第一个和第二个“列”实际上是 panda Index 对象。 (而不是 1, 2 ,3 ,4, 5 等对每一行进行编号,您有一对带标签的索引)。它们的操作方式与普通列不同。尝试使用df2.index 而不是df2.columns 来访问它们。

标签: python pandas dataframe series kaggle


【解决方案1】:

问题并不在于您需要重命名列。
您正在导入的 .csv 文件的前几行是什么,因为您没有正确导入它。 Pandas 没有认识到 JobTitle 和 Year 是列标题。 Pandas read_csv() 是 very flexible,它可以让你做什么。
如果您正确导入数据,则无需重新索引或重新标记。

【讨论】:

  • OP 询问了df2 DF,这是groupby(['JobTitle','Year']) 操作的结果,导致['JobTitle','Year'] 多索引。所以玩read_csv()不会有帮助
  • 啊,是的。我的错。
【解决方案2】:

引用 MaxU 的回答:

df3 = df2.reset_index()

谢谢!

【讨论】:

    猜你喜欢
    • 2014-11-23
    • 2018-11-30
    • 1970-01-01
    • 2021-02-03
    • 2017-10-14
    • 2018-08-16
    • 2017-12-19
    • 2019-11-01
    • 1970-01-01
    相关资源
    最近更新 更多