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