3 python series dataframe pandas
我有一个数据框,其中一列有 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
Run Code Online (Sandbox Code Playgroud)
未映射的值将给出NaN. 如果您希望保留未映射的值,您可以在fillna之后:
df['B'] = df['A'].fillna(df['B']).astype(int)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |