我有一个数据框,其中一列具有4个不同的值,例如100、200、300和400。我想创建一个新列:
如何做到不循环?
答案 0 :(得分:2)
您可以将字典与pd.Series.map
一起使用:
df = pd.DataFrame({'A': [100, 400, 200, 300, 400, 200]})
d = {100: 25, 200: 30, 300: 33, 400: 43}
df['B'] = df['A'].map(d)
print(df)
A B
0 100 25
1 400 43
2 200 30
3 300 33
4 400 43
5 200 30
未映射的值将为NaN
。如果您希望保持未映射的值不变,可以在之后fillna
:
df['B'] = df['A'].fillna(df['B']).astype(int)