我一直在寻找一种优雅的方法来更改DataFrame
中指定的列名。
播放数据...
import pandas as pd
d = {
'one': [1, 2, 3, 4, 5],
'two': [9, 8, 7, 6, 5],
'three': ['a', 'b', 'c', 'd', 'e']
}
df = pd.DataFrame(d)
到目前为止我找到的最优雅的解决方案...
names = df.columns.tolist()
names[names.index('two')] = 'new_name'
df.columns = names
我希望能有一个简单的小插曲...此尝试失败...
df.columns[df.columns.tolist().index('one')] = 'another_name'
感谢您收到的任何提示。
发布于 2014-08-30 02:23:55
由于inplace
参数可用,因此您不需要复制原始数据框并将其分配回其自身,但请执行以下操作:
df.rename(columns={'two':'new_name'}, inplace=True)
发布于 2015-12-10 10:41:10
关于?
df.columns[2] = "new_name"
发布于 2018-06-06 15:30:06
如果您知道它是哪一列(first / second / nth),那么在一个类似问题上发布的这个解决方案可以工作,无论它是命名的还是未命名的,并且只有一行:https://stackoverflow.com/a/26336314/4355695
df.rename(columns = {list(df)[1]:'new_name'}, inplace=True)
# 1 is for second column (0,1,2..)
https://stackoverflow.com/questions/20868394
复制相似问题