gpt4 book ai didi

python - 遍历数据框中的行,对每一行执行计算并将答案放入新列中

转载 作者:太空宇宙 更新时间:2023-11-04 00:23:07 25 4
gpt4 key购买 nike

对 python 有点陌生。实际上,我感兴趣的是迭代数据框中的行,如果满足条件则对特定列执行计算,然后将答案放在新列的同一行上。

例如,如果我有一个数据框:

   c1  c2 
0 20 82
1 15 14
2 10 19

如果 c2 中的值大于五十,我可能想将 c1 中的值减半,如果 c2 中的值小于五十,则将 c1 中的值加倍,然后将答案显示在新列 c3 中,所以我最终会得到:

   c1  c2  c3
0 20 82 10
1 15 14 30
2 10 19 20

我知道如何进行数学运算,以及如何使用 if/else 函数,它只是遍历我正在努力处理的行以及如何将每个答案放入新列中。我知道 iterrows,但我不相信我完全理解如何使用它,或者它在这种情况下是否合适?

干杯。

最佳答案

直接的方法是将其分配给同一数据框中的新列。如果名称存在,则列被替换。否则附加。

In [2]: df = pd.DataFrame({'c1':[20,15,10],'c2':[82,14,19]})

In [3]: df
Out[3]:
c1 c2
0 20 82
1 15 14
2 10 19

In [6]: df['c3'] = df['c1'] + df['c2']

In [7]: df
Out[7]:
c1 c2 c3
0 20 82 102
1 15 14 29
2 10 19 29

In [8]: df['c4'] = 10

In [9]: df
Out[9]:
c1 c2 c3 c4
0 20 82 102 10
1 15 14 29 10
2 10 19 29 10

if-else 可以使用匿名函数实现:

In [13]: df['c5'] = df['c2'].apply(lambda x: x if x > 50 else 'nope')

In [14]: df
Out[14]:
c1 c2 c3 c4 c5
0 20 82 102 10 82
1 15 14 29 10 nope
2 10 19 29 10 nope

关于python - 遍历数据框中的行,对每一行执行计算并将答案放入新列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48449888/

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