【问题标题】:Renaming columns of a pandas dataframe without column names [duplicate]重命名没有列名的熊猫数据框的列[重复]
【发布时间】:2017-12-19 00:48:32
【问题描述】:

我正在尝试在 dataframe.from_dict 操作之后命名我的新数据框的列。

只需使用 pandas.dataframe.from_dict 函数:

df = pd.DataFrame.from_dict(my_dict,orient='index')

生成没有列标题的数据框。

data=pd.DataFrame.from_dict(my_dict,orient='index).rename(columns = {'name','number'}) 

这不会产生任何错误:TypeError: 'set' object is not callable.

有人知道吗?

【问题讨论】:

  • 你会想要df.columns = ['name','number']
  • 我认为您可以检查this - 所有可能的列重命名。看来是骗人的。
  • 感谢 COLDSPEED 和 jezrael! @COLDSPEED - 不幸的是,该方法不起作用 - 打印的消息是“ValueError:长度不匹配:预期轴有 1 个元素,新值有 2 个元素”。我认为 df.from_dict 函数可能会导致字典的键成为数据框的索引(因为它被粘贴在第一列中)。 jezrael 我读过那篇文章,但使用的方法不起作用

标签: python pandas


【解决方案1】:

如果您希望索引作为 dict 中的键,则无需重命名。

df = pd.DataFrame.from_dict(dicts, orient = 'index') #index is name

df.columns = (['number']) #non-index column is number

df.index.name = 'name'

或者,您可以创建一个新列,而不是更改索引名称:

df = df.reset_index() #named column becomes index, index becomes ordered sequence

df['name'] = df['index'] #new column with names

del df['index'] #delete old column

【讨论】:

  • 谢谢!像魅力一样工作!
【解决方案2】:

您可以通过隐式引用列名然后设置新名称来执行类似的操作。

data = (  
  pd.DataFrame.from_dict(my_dict,orient='index')
  .rename(columns=dict(zip(df.columns,['name','number'])))
)

【讨论】:

  • 谢谢艾伦!但这对我不起作用。这段代码对你有用吗?
猜你喜欢
  • 2014-11-23
  • 2019-08-25
  • 2021-02-03
  • 2019-05-25
  • 1970-01-01
  • 2019-11-01
  • 2017-01-26
  • 2017-10-14
  • 2018-08-16
相关资源
最近更新 更多