2016-05-04 51 views
3

很抱歉,如果这是一个愚蠢的问题,的Python /大熊猫数量减去一列

我有一个看起来有点像这样的熊猫数据帧:

Col1 Col2 

0  217 
287 130 

我想减去

res = dataFrame['Col2'][0] - dataFrame['Col2'][1] 

:内柱2

回答

1

你可以.sum()列中的值并从第一个值中减去该值df.loc[0]

df 
    Col1  Col2 
0 0  217 
1 278  130 

df.loc[0] - df.loc[1:].sum() 

输出:

Col1 -278 
Col2  87 
dtype: int64 

如果你只是想将其应用到Col2

df['Col2'].loc[0] - df['Col2'].loc[1:].sum() 

输出:

87 

您可以在任意数量的使用您的数据框中的行:

Col1 Col2 
0 0  217 
1 278  130 
2 23  45 
3 22  123 
4 370  123 

df.loc[0] - df.loc[1:].sum() 

输出:

Col1 -693 
Col2 -204 
dtype: int64 
1

如果我理解你的问题,你想这样做的两个数字如果这不是你问的问题,请在下面修复你的问题或评论。

+0

如果有10000行数据帧中会发生什么? –

+0

我认为这个问题比这个简单。 OP要求:我试图减去第二列中的两个数字 我不知道为什么要放在10,000行的情况下,如果他只想减去两个数字。我接受这个问题有点含糊。 –

+0

对不起,虽然我的问题只是要求列中的两个数字,但知道如何在@JoeR所说的列中减去多个数字也是有帮助的。然而,我的问题得到了回答,感谢您的回复! – bansire

3

如果你正在尝试做的所有col2的元素相减,你可以这样做:

sub = df['Col2'].diff() 

子将是一个系列,其中:

Col2 

NaN 
-87 

DataFrame.diff()

+1

如果你有更多的行'.diff()'不会继续减去。它只会告诉你两个数字之间的差异。 –

+0

这工作谢谢你 – bansire