gpt4 book ai didi

python - 使用 python/pandas 中的范围内的数字重命名列

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:28 25 4
gpt4 key购买 nike

我遇到了以下情况。我很确定我遗漏了一些简单的东西,但我在这里和其他网站上尝试了很多建议,但没有找到我要找的东西。

我有一个包含许多随机命名列的数据框(由提供的 csv 文件提供)。我想使用范围函数中的数字重命名这些列。

因为我要重命名所有列,所以我可以直接使用

df.columns = [str(x) for x in range(1,2000)]

但是,假设我可以通过 rename() 函数来实现吗?也许使用 lambda?我尝试了许多不同的变体,但我遇到了各种各样的错误。 我正在寻找能给我相当于

的语法
 df.rename(columns= (str(x) for x in range(1,2000)))

其中重命名根据给定范围按顺序将名称分配给列。以上不起作用。但是有办法让它发挥作用吗?

谢谢!

最佳答案

你可以传递一个dict来重命名columns kwarg:

df.rename(columns={x:y for x,y in zip(df.columns,range(0,len(df.columns)))})

这需要:

>>> df   ID1  ID2 POS1 POS2     TYPE TYPEVAL1    A  001    1    5    COLOR     RED2    A  001    1    5   WEIGHT    50KG3    A  001    1    5   HEIGHT   160CM4    A  002    6   19   FUTURE     YES5    A  002    6   19  PRESENT      NO6    B  001   26   34   COLOUR    BLUE7    B  001   26   34   WEIGHT    85KG8    B  001   26   34   HEIGHT   120CM9    C  001   10   13   MOBILE   NOKIA10   C  001   10   13   TABLET    ASUS

然后给你:

>>> df.rename(columns={x:y for x,y in zip(df.columns,range(0,len(df.columns)))})    0    1   2   3        4      51   A  001   1   5    COLOR    RED2   A  001   1   5   WEIGHT   50KG3   A  001   1   5   HEIGHT  160CM4   A  002   6  19   FUTURE    YES5   A  002   6  19  PRESENT     NO6   B  001  26  34   COLOUR   BLUE7   B  001  26  34   WEIGHT   85KG8   B  001  26  34   HEIGHT  120CM9   C  001  10  13   MOBILE  NOKIA10  C  001  10  13   TABLET   ASUS

关于python - 使用 python/pandas 中的范围内的数字重命名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42847441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com