我一直在尝试使用名称列表更改Pandas数据框的列名。正在使用以下代码:
```
df.rename(columns = list_of_names, inplace=True)
然而,每次我都会遇到一个类型错误,并出现错误信息“列表对象不可调用”。 我想知道为什么会发生这种情况?我该如何解决这个问题? 谢谢你的帮助。
您可以使用
df.columns = ['Leader', 'Time', 'Score']
如果您需要rename
(l
是您需要更改的名称列表)
df.rename(columns=dict(zip(df.columns,l)))
set_axis
要设置列名,请使用 set_axis
,并在axis=1
或axis='columns'
中使用:
df = df.set_axis(list_of_names, axis=1)
axis=0
设置索引名称。
df.columns
?虽然被广泛使用,但接受的答案存在一些缺点,set_axis
有一些优势:
set_axis
allows method chaining:
df.some_method().set_axis(list_of_names, axis=1).another_method()
vs:
df = df.some_method()
df.columns = list_of_names
df.another_method()
set_axis
should theoretically provide better error checking than directly modifying an attribute, though I can't find a specific example at the moment.
axis=1
会报错,但似乎 axis=0
仍然允许你将更长的列表设置为索引。 - tdydf.columns = ...
和 df.index = ...
都会出现长度不匹配的错误。我猜这是版本差异造成的。顺便说一下,方法链在我看来非常有用。 - Mustafa Aydındf.columns = list_of_names
column_list
就是 ['a', 'b', 'c']
。df.columns
是 ['X', 'Y', 'Z']
。df.columns = column_list
。
list_of_names
吗? - JGC