在dataframe Python中重命名列

2024-09-27 17:52:46 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有下面的数据帧,我想更改列的名称。你知道吗

    0   1   2   3   4   5   6   7   8   9
Hollande    35  29  68  88  82  74  47  26  12  4
Rues-Basses-Fusterie    0   0   8   7   5   4   8   1   0   0 

我希望得到这样一个范围,而不是0 1 2:

    0-9  10-19  20-29
Hollande    35  29  68  88  82  74  47  26  12  4
Rues-Basses-Fusterie    0   0   8   7   5   4   8   1   0   0 

谢谢你帮我:)


Tags: 数据名称rueshollandebassesfusterie
3条回答

文档中对此进行了解释。 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rename.html

在你的例子中,你可以

df.rename(columns={"0": "0-9", "1": "10-19" ... , "9": "90-99"})

如果您只想以显示的方式重命名所有列或前三列(但您不想更改列数),您可以这样做,假设您的数据帧名为yourDataFrame

data_top = yourDataFrame.columns
newcols = []
for a in data_top.astype(int):
    newcols.append(str(a*10) + '-' + str(a*10+9))
yourDataFrame.columns = newcols

使用这段代码,您可以以这种方式重命名许多熊猫数据帧的列,而不考虑它们所拥有的列数。你知道吗

如@RamWill所指出的,如果要重命名df数据帧中的所有列,最好使用带有匿名函数的the rename method

df.rename(columns=lambda x: f"{int(x) * 10}-{int(x) * 10 + 9}")

还可以添加inplace=True参数,这意味着修改原始数据帧,而不创建副本。你知道吗

新列:

> df.columns                                                                                
Index(['0-9', '10-19', '20-29', '30-39', '40-49', ...], dtype='object')

相关问题 更多 >

    热门问题