python - 有条件地在数据框中填充一个值

标签 python pandas dataframe

我需要利用数据框中的一列来填充另一列。我有四个值可以在此列中 - E、H、N 和 P。这些不同的值中的每一个都将用于填充“大小”列中的值。

我的数据示例如下:

Type    H Data      P Data      Size
 H        1           0.5
 H       1.5           1
 E        -            -
 N        -            -
 P       0.5          0.5
 E        -            -

我想填写“尺寸”列的每一行。

对于“E”类型,我想填写“2”。对于“N”类型,我想填写“-”

对于“H”和“P”类型,我想填写从相应数据框(“H 数据”或“P 数据”)中获取的值。

我的结果应该如下所示:

Type    H Data      P Data      Size
 H        1           0.5        1
 H       1.5           1        1.5
 E        -            -         2
 N        -            -         -
 P       0.5          0.5       0.5
 E        -            -         2

最好的方法是什么?我目前在 Excel 中有一个工作代码可以完成此操作,但我不确定如何在 Python 中执行此操作。在 Excel 中,我有嵌套的 IF 语句。最好是在 Python 中创建一个循环,还是 Pandas 或 NumPy 中有内置函数可以完成这个?提前致谢!

最佳答案

尝试使用:

df['Size'] = df['H Data'].fillna(df['P Data'])
df.loc[df['Type'].eq('E'), 'Size'] = 2
print(df)

输出:

  Type H Data P Data Size
0    H      1    0.5    1
1    H    1.5      1  1.5
2    E      -      -    2
3    N      -      -    -
4    P    0.5    0.5  0.5
5    E      -      -    2

关于python - 有条件地在数据框中填充一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59342003/

相关文章:

python - 具有相同列和索引的多个数据帧的平均值

python - Nginx + Gunicorn - 静态资源错误页面

python - 使用列表读取 Pandas 中的列以创建新的分类列

python - 从数据框中删除随机行,直到计数等于某些条件

python - 根据另一列中的值查找单元格中的值

python OpenAI健身房监视器在录制目录中创建json文件

python - 将 Python 输出导出到 CSV 或文本文件(初学者)

不同大小的 Python Pandas 细胞

python - 我想从数据框中的行创建值列表,并删除前 2 个元素

python - 为什么我的 Pandas 'apply' 引用多个列的函数不起作用?