Python 数据框 : how to map a new column from existing column

标签 python pandas dataframe series

<分区>

我有一个数据框,其中一列有 4 个不同的值,例如 100、200、300 和 400。我想创建一个新列:

  • 对于 100,它变成 25
  • 200,变成30
  • 300 变成 33
  • 对于 400,它变成 43...等等...

不循环怎么办?

最佳答案

您可以将字典与 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/

相关文章:

python - 根据行出现选择数据框结果

python - 比较两个 csv 并合并它们

python - Golang 和 Python 执行 http 请求的方法之间的根本区别?

python - 按一定条件拆分数据框但保留原始数据框

python - 在 python 中处理大型 JSON 数据

python - 无法使用 Pandas 为标题列建立索引

python - 有没有办法在 numba jitclass 中包含字符串属性?

python - 为什么 sklearn Pipeline 调用 transform() 的次数比 fit() 多很多?

python - 如何将列表中的随机值分配给同一行的另一列中不存在的新列?

R:重复使用长度