gpt4 book ai didi

python - 在 Pandas 数据框中的不同列上使用 lambda if 条件

转载 作者:太空狗 更新时间:2023-10-29 22:06:30 28 4
gpt4 key购买 nike

我有简单的数据框:

import pandas as pd
frame = pd.DataFrame(np.random.randn(4, 3), columns=list('abc'))

例如:

a   b   c
0 -0.813530 -1.291862 1.330320
1 -1.066475 0.624504 1.690770
2 1.330330 -0.675750 -1.123389
3 0.400109 -1.224936 -1.704173

然后我想创建包含来自“c”的值的“d”列(如果 c 为正数)。来自“b”的其他值。

我正在尝试:

frame['d']=frame.apply(lambda x: frame['c'] if frame['c']>0 else frame['b'],axis=0)

但得到“ValueError: ('系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。', '发生在索引 a')

我试图谷歌如何解决这个问题,但没有成功。有什么建议吗?

最佳答案

这是你想要的吗?

In [300]: frame[['b','c']].apply(lambda x: x['c'] if x['c']>0 else x['b'], axis=1)
Out[300]:
0 -1.099891
1 0.582815
2 0.901591
3 0.900856
dtype: float64

关于python - 在 Pandas 数据框中的不同列上使用 lambda if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37443082/

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