pandas dataframe:如何添加后续的数值数据行

时间:2015-07-14 13:22:06

标签: python pandas

我有一个只有数字的数据框,我想添加后续行。所以从这样的数据框:

UIScrollView

我想得到一个像这样的新数据框:

   A  B
0  1  2
1  3  3
2  5  4
3  9  7

(新数据帧的第一行包含原始数据帧的前两行的条目,相加,等等。)

我找到了以下方法:

    A   B
0   4   5
1   8   7
2  14  11

但它既不快也不漂亮。关于如何优化速度和python zen-ness的任何建议?

4 个答案:

答案 0 :(得分:1)

自行呼叫addshift,然后您需要致电dropna

In [228]:

df.add(df.shift()).dropna()
Out[228]:
    A   B
1   4   5
2   8   7
3  14  11

答案 1 :(得分:1)

import pandas

df = pandas.DataFrame({'A': [1,3,5,9], 'B': [2,3,4,7]})

(df + df.shift(1)).dropna()


    A   B
1   4   5
2   8   7
3  14  11

答案 2 :(得分:1)

这将起作用,并为您提供与示例中相同的索引

(df+df.shift(-1))[:-1]

Out[146]: 
    A   B
0   4   5
1   8   7
2  14  11

答案 3 :(得分:0)

使用headtail的替代方法:

df.tail(-1).reset_index(drop=True) + df.head(-1).reset_index(drop=True)

Out[41]:
    A   B
0   4   5
1   8   7
2  14  11