gpt4 book ai didi

python - 基于现有 DataFrame 和条件运算符创建新的 Pandas DataFrame

转载 作者:行者123 更新时间:2023-12-01 08:03:54 28 4
gpt4 key购买 nike

我正在尝试根据现有 DataFrame 中的值创建一个新的 DataFrame

源数据框

a = pd.DataFrame({'x': ['1', '2', '3', '4', '5'], 'y': ['1', '---', '1', '1', '1']})

x y
0 1 1
1 2 ---
2 3 1
3 4 1
4 5 1

预期目标 DataFrame

b = pd.DataFrame({'z': int(a['x']) + int(a['y']) if a['y'] != '---' else '---'})

z
0 2
1 ---
2 4
3 5
4 6

我收到“ValueError:系列的真值不明确

有人知道并可以给我提示吗?

最佳答案

如果您的数据框纯粹由数字组成,则像这样的内联代码a.astype(int).sum(axis = 1)将解决您的问题。

但是由于您不能保证每一行都有数字,因此您必须迭代这些行并根据您的条件进行所需的计算。在下面的示例中,我使用 apply 函数和 lambda 来达到所需的结果。

pd.DataFrame(
dict(
z = a.apply(lambda r: int(r['x']) + int(r['y']) if r['y'] != '---' else '---' , axis=1 )
)
)

要在同一 DF 中应用,请检查以下内容:

a['z'] = a.apply(lambda r: int(r['x']) + int(r['y']) if r['y'] != '---' else '---' , axis=1 )

关于python - 基于现有 DataFrame 和条件运算符创建新的 Pandas DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55619127/

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