使用Python的pandas库重命名一个没有列名的dataframe的列

5
我正在尝试在使用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'] - cs95
我认为你可以查看这个链接(https://dev59.com/amgu5IYBdhLWcg3wZmW8?rq=1)- 所有关于重命名列的可能方法。而且似乎它是重复的。 - jezrael
感谢COLDSPEED和jezrael!@COLDSPEED - 不幸的是,该方法不起作用 - 打印的消息是“ValueError:长度不匹配:预期轴有1个元素,新值有2个元素”。我认为df.from_dict函数可能会导致字典的键成为数据帧的索引(因为它被粘贴在第一列中)。 jezrael我已经阅读了那篇文章,使用的方法没有起作用。 - tlhy
2个回答

1
如果你想将索引作为字典的键,就不需要对其进行重命名。
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

谢谢!运行得非常顺利! - tlhy

0

你可能可以通过隐式引用列名并设置新名称来实现这样的功能。

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

谢谢Allen!但是对我没用。这段代码对你有用吗? - tlhy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接