如何用另一列对特定行进行求和

时间:2019-03-08 11:56:32

标签: python pandas numpy

Attachment Here

如何将 8788.1 值的第一个开放列替换为 8786.75

的高列

提前谢谢!

2 个答案:

答案 0 :(得分:1)

df = pd.DataFrame({
        'open': range(5, 15),
        'high': [0]*5 + list(range(5)),
    })
print(df)

输出:

   open  high
0     5     0
1     6     0
2     7     0
3     8     0
4     9     0
5    10     0
6    11     1
7    12     2
8    13     3
9    14     4

现在,让我们获取列v1中的第一个非零元素open和列v2中的第一个非零元素high,并计算{{1} }:

v1 - v2

输出:

v1 = df.loc[df['open']!=0, 'open'].iloc[0]
v2 = df.loc[df['high']!=0, 'high'].iloc[0]

print(v1, v2, v1 - v2)

答案 1 :(得分:1)

欢迎使用StackOverflow!

这个答案是要找出Open和High中第一个非零值之间的差异。

df[df['Open'] != 0]['Open'].iloc[0] - df[df['High'] != 0]['High'].iloc[0]