<分区>
我有一个数据框,其中一列有 4 个不同的值,例如 100、200、300 和 400。我想创建一个新列:
- 对于 100,它变成 25
- 200,变成30
- 300 变成 33
- 对于 400,它变成 43...等等...
不循环怎么办?
<分区>
我有一个数据框,其中一列有 4 个不同的值,例如 100、200、300 和 400。我想创建一个新列:
不循环怎么办?
最佳答案
您可以将字典与 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)
关于Python 数据框 : how to map a new column from existing column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175877/