pandas dataframe:如何添加数字d的后续行

2024-09-28 19:33:20 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

^{2}$

(新dataframe的第一行包含原始dataframe的前两行的条目,added up等)

我找到了以下方法:

df = pandas.DataFrame({'A': [1,3,5,9], 'B': [2,3,4,7]})
new_rows = {}
for i in range(df.shape[0] - 1):
    new_rows[i] = df.irow(i)+df.irow(i+1)
new_df = pandas.DataFrame(new_rows).transpose()

但它既不快也不漂亮。有什么关于如何优化这一点的建议,包括速度和pythonzen?在


Tags: 数据方法indataframepandasdfaddednew
3条回答

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

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

Out[146]: 
    A   B
0   4   5
1   8   7
2  14  11
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

单独调用^{}^{},然后需要调用^{}

In [228]:

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

相关问题 更多 >