您将如何使用字典替换数据框中所有列的值?
下面是一个示例,在此示例中,我尝试将字典传递给replace函数。我有一个脚本,可以根据公司的经理/员工结构生成各种大小的数据框-因此,每个数据框的列数各不相同。
import pandas as pd
import numpy as np
df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}, 'col3': {0: 'w', 1: 1, 2: 2}, 'col4': {0: 'w', 1: 1, 2: 2}})
di = {1: "A", 2: "B"}
print(df)
df = df.replace({di})
print(df)
下面有一个类似的问题链接,其中该解决方案指定了列名,但是鉴于我要查看的整个数据帧的列名/大小会有所不同,因此我想将replace函数应用于整个列数据框。
Remap values in pandas column with a dict
谢谢!
答案 0 :(得分:1)
不要将{}
放在字典周围-试图将其变成集合,由于字典不能成为集合中的元素,因此会引发错误。而是直接传递字典:
import pandas as pd
import numpy as np
df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}, 'col3': {0: 'w', 1: 1, 2: 2}, 'col4': {0: 'w', 1: 1, 2: 2}})
di = {1: "A", 2: "B"}
print(df)
df = df.replace(di)
print(df)
输出:
col1 col2 col3 col4
0 w a w w
1 1 2 1 1
2 2 NaN 2 2
col1 col2 col3 col4
0 w a w w
1 A B A A
2 B NaN B B