簡體   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