仅当名称在字典中时才基于字典重命名 pandas 列
Rename pandas column based on a dictionary only if the name is in the dictionary
我想重命名我的数据框中的列,使用字典中的名称,但在我的例子中,我的字典不代表所有列名,所以我只想更改我的那些在我的字典里。
例如
key1 key2 key3 key4
index
1 val1 val2 val3 val4
2 val5 val6 val7 val8
3 ...
4
5
我的字典是
{'key1': 'name1',
'key2': 'name2',
'key4': 'name4'
}
我想得到的是
name1 name2 key3 name4
index
1 val1 val2 val3 val4
2 val5 val6 val7 val8
3 ...
4
5
所以我尝试做与 相同的事情,但是映射不起作用,因为不在我的字典中的键在列名称中以 Nans
结尾。
有谁知道如何做到这一点? T-T
您可以在列表理解中使用 dict.get
(请注意,我在此处将字典命名为 d
):
df.columns = [d.get(k,k) for k in df.columns]
输出:
name1 name2 key3 name4
index
1 val1 val2 val3 val4
2 val5 val6 val7 val8
我想重命名我的数据框中的列,使用字典中的名称,但在我的例子中,我的字典不代表所有列名,所以我只想更改我的那些在我的字典里。 例如
key1 key2 key3 key4
index
1 val1 val2 val3 val4
2 val5 val6 val7 val8
3 ...
4
5
我的字典是
{'key1': 'name1',
'key2': 'name2',
'key4': 'name4'
}
我想得到的是
name1 name2 key3 name4
index
1 val1 val2 val3 val4
2 val5 val6 val7 val8
3 ...
4
5
所以我尝试做与 Nans
结尾。
有谁知道如何做到这一点? T-T
您可以在列表理解中使用 dict.get
(请注意,我在此处将字典命名为 d
):
df.columns = [d.get(k,k) for k in df.columns]
输出:
name1 name2 key3 name4
index
1 val1 val2 val3 val4
2 val5 val6 val7 val8