繁体   English   中英

如何重命名熊猫数据框列添加一个整数

[英]How to rename pandas dataframe columns adding an integer

我有一个这样的数据框:

        0      1       2      3      4   ...     37      38     39 40   41
0   26.265  0.072  27.925  3.011  4.541  ...  7.812  16.954  0.000  1  nan
0   26.265  0.072  27.901  3.015  4.541  ...  7.773  16.954  0.000  1  nan
0   26.265  0.072  27.925  3.011  4.541  ...  7.773  17.032  0.000  1  nan
0   26.265  0.072  27.901  3.012  4.541  ...  7.773  16.954  0.000  1  nan
0   26.265  0.072  27.901  3.015  4.541  ...  7.773  17.032  0.000  1  nan
..     ...    ...     ...    ...    ...  ...    ...     ...    ... ..  ...
0   26.241  0.072  27.901  3.013  4.541  ...  7.773  17.032  0.000  1  nan
0   26.265  0.072  27.925  3.012  4.541  ...  7.773  16.954  0.000  1  nan
0   26.265  0.073  27.901  3.012  4.541  ...  7.812  16.954  0.000  1  nan
0   26.265  0.072  27.901  3.016  4.541  ...  7.773  16.954  0.000  1  nan
0   26.265  0.072  27.901  3.012  4.541  ...  7.773  17.032  0.000  1  nan

我想重命名列,每个列加 2:

        2      3       4      5      6   ...     39      40     41 42   43
0   26.265  0.072  27.925  3.011  4.541  ...  7.812  16.954  0.000  1  nan
0   26.265  0.072  27.901  3.015  4.541  ...  7.773  16.954  0.000  1  nan
0   26.265  0.072  27.925  3.011  4.541  ...  7.773  17.032  0.000  1  nan
0   26.265  0.072  27.901  3.012  4.541  ...  7.773  16.954  0.000  1  nan
0   26.265  0.072  27.901  3.015  4.541  ...  7.773  17.032  0.000  1  nan
..     ...    ...     ...    ...    ...  ...    ...     ...    ... ..  ...
0   26.241  0.072  27.901  3.013  4.541  ...  7.773  17.032  0.000  1  nan
0   26.265  0.072  27.925  3.012  4.541  ...  7.773  16.954  0.000  1  nan
0   26.265  0.073  27.901  3.012  4.541  ...  7.812  16.954  0.000  1  nan
0   26.265  0.072  27.901  3.016  4.541  ...  7.773  16.954  0.000  1  nan
0   26.265  0.072  27.901  3.012  4.541  ...  7.773  17.032  0.000  1  nan

我是这样做的:

data.rename(columns={41:43,40:42,39:41,38:40,37:39,36:38,35:37,34:36,33:35,32:34,31:33,30:32,29:31...})

但我在徘徊哪里是最好的代码来做到这一点

谢谢你

您还可以直接处理列:

df.columns = df.columns.astype(int) + 2

您可以使用列表理解来重命名列,在每个列名中添加两个(我使用int以防列名是字符串,但它们看起来像是整数):

data.columns = [int(col) + 2 for col in data.columns]

如果列已经是整数,则:

data.columns = [col + 2 for col in data.columns]

您仍然可以使用rename方法(它可以让您在此之上链接其他方法)。 只需传递一个函数而不是字典:

new_df = df.rename(columns=lambda c: int(c) + 2)

如果您的列名已经是数字,您可以删除int()并执行以下操作:

new_df = df.rename(columns=lambda c: c + 2)

最后,对于“为什么不 - 因为我们可以”的答案,您可以__add__ lambda 并使用__add__ dunder 方法,如下所示:

new_df = df.rename(columns=int(2).__add__)

您可以使用范围:

df.columns = list(range(2,len(df.columns)+2))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM