[英]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.