我需要利用数据框中的一列来填充另一列。我有四个值可以在此列中 - 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/