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 次 |
最近记录: |