Python 如何使用自定义值对一行进行编码?
我想用pandas编码所选列的行值 例如,假设我有以下数据帧Python 如何使用自定义值对一行进行编码?,python,pandas,dataframe,Python,Pandas,Dataframe,我想用pandas编码所选列的行值 例如,假设我有以下数据帧 Col_A Col_B 0 SV NT 1 NT P 2 SV I 3 P SV 4 I P 我有一个字典,其中包含一列中每一行的编码值,如下所示 encode_values = { "Col_A" : {"NT": 1, "SV": 0, "P": 1, &q
Col_A Col_B
0 SV NT
1 NT P
2 SV I
3 P SV
4 I P
我有一个字典,其中包含一列中每一行的编码值,如下所示
encode_values = {
"Col_A" : {"NT": 1, "SV": 0, "P": 1, "I": 0},
"Col_B": {"NT": 10, "SV": 0, "P": 10, "I": 0}
}
我想要一个新的dataframe,其中每个列都有自定义编码
结果:-
Col_A Col_B
0 0 10
1 1 10
2 0 0
3 1 0
4 0 10
尝试用dictionary作为参数替换,分别应用于df中的每个系列:
df.Col_A = df.Col_A.replace (encode_values['Col_A'])
df.Col_B = df.Col_B.replace (encode_values['Col_B'])
尝试用dictionary作为参数替换,分别应用于df中的每个系列:
df.Col_A = df.Col_A.replace (encode_values['Col_A'])
df.Col_B = df.Col_B.replace (encode_values['Col_B'])
您可以使用列名
应用
和映射
:
print (df.apply(lambda d: d.map(encode_values[d.name])))
Col_A Col_B
0 0 10
1 1 10
2 0 0
3 1 0
4 0 10
您可以使用列名
应用
和映射
:
print (df.apply(lambda d: d.map(encode_values[d.name])))
Col_A Col_B
0 0 10
1 1 10
2 0 0
3 1 0
4 0 10