gpt4 book ai didi

python - 根据不同的列将值应用于列

转载 作者:行者123 更新时间:2023-12-01 09:21:40 24 4
gpt4 key购买 nike

我正在尝试进行一些数据操作,但有一些奇怪的要求:

 Index   ht1   w1   ht2   w2   ht3   w3   top width  
------- ----- ---- ----- ---- ----- ---- -----------
0 9 5 5
1 7 2 3
2 3 4 4
3 4 3 5 6 6
4 6 8 2 1 3 5 5

我有成对列格式的数据,即。高度和宽度。有三对高度和宽度列。仅当高度列中有值时,最后一列才会选取行中的最后一个宽度值。此外,如果任何高度列中有一个值,但相应的宽度为空,则顶部宽度将显示为空,例如对于行索引 1:宽度对应的高度为空白,因此顶部宽度列将为空白。

在我拥有的数据中,最后一列(顶部宽度)为空,需要填充以看起来像上表中的最后一个宽度值。

对于代码,我尝试使用map和apply。特别是,我尝试将条件与 apply 方法一起使用,但它不起作用。有谁可以根据上述条件帮忙填写顶部宽度栏吗?

谢谢

最佳答案

我认为需要:

#filter DataFrames by columns
a = df.filter(like='ht')
b = df.filter(like='w')

#boolean mask with XOR
m = (a.notnull().values ^ b.notnull().values).any(axis=1)

#get last values with replace to NaN by mask
df['new'] = b.ffill(axis=1).iloc[:, -1].mask(m)
print (df)
ht1 w1 ht2 w2 ht3 w3 new
Index
0 9 5 NaN NaN NaN NaN 5.0
1 7 2 3.0 NaN NaN NaN NaN
2 3 4 NaN NaN NaN NaN 4.0
3 4 3 5.0 6.0 NaN NaN 6.0
4 6 8 2.0 1.0 3.0 5.0 5.0

关于python - 根据不同的列将值应用于列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50760568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com