[英]How to change column names in pandas Dataframe using a list of names?
[英]Change column names in python pandas using list comprehension
我目前正在尝试更改以下列名称:
Unnamed: 1 | Unnamed: 2 <----- Column names
Alfa Beta <----- Data
进入:
2016 | 2017
Alfa Beta
我用过:
df.rename(columns=lambda x: re.sub(r"Unnamed\:\s\d+"," ",x))
用空格替换列名,但我想创建一个循环,以便自动替换为 2016 和 2017
[另外]我这样做是为了创建值列表
for i in range(len(df.columns[:])):
i+=2016
str(i)
结果给出:
2016
2017
有什么方法可以将这些值替换为列表理解吗?
df.rename(columns=lambda x: int(x.strip('Unnamed: '))+2015)
我认为这里的列表理解不是必需的,只需从变量开始分配range
:
start = 2016
df.columns = range(start, start + len(df.columns))
print (df)
2016 2017
0 Alfa Beta
陷入这个困境,按照 OP 对列表理解的要求:
df.columns = [re.sub(r'Unnamed: [12]', lambda x: str(int(x.group(0).strip('Unnamed: '))+2015), item) for item in df.columns]
我知道这是一个非常长的单行但 OP 要求它,但同意其他人,手动执行是 go 的方式,除非 df 很大,有很多列。 lambda function 部分应该是一个独立的 function 部分,这将为更高级的操作提供更大的灵活性。
这一行可以在 header 以下更改:
col1 Unnamed: 1 col3 Unnamed: 2
0 1 Alfa 3 Beta
至:
col1 2016 col3 2017
0 1 Alfa 3 Beta
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.