我有
df = pd.DataFrame.from_dict({'col1':['A','B', 'B', 'A']})
col1
0 A
1 B
2 B
3 A
other_dict = {'A':1, 'B':0}
我想在df中附加一列,所以它看起来像这样:
col1 col2
0 A 1
1 B 0
2 B 0
3 A 1
答案 0 :(得分:1)
一种选择是使用申请:
In [11]: df["col1"].apply(other_dict.get)
Out[11]:
0 1
1 0
2 0
3 1
Name: col1, dtype: int64
然后将其分配给列:
df["col2"] = df["col1"].apply(other_dict.get)
另一个可能更有效的(如果你有更大的组)是使用转换:
In [21]: g = df.groupby("col1")
In [22]: g["col1"].transform(lambda x: other_dict[x.name])
Out[22]:
0 1
1 0
2 0
3 1
Name: col1, dtype: object
答案 1 :(得分:1)
您还可以使用map
:
In [3]:
df['col2'] = df['col1'].map(other_dict)
df
Out[3]:
col1 col2
0 A 1
1 B 0
2 B 0
3 A 1