numpy 是否有一种方法可以有效地将pandas数据框列和整列的行相加?

bq3bfh9z  于 2023-08-05  发布在  其他
关注(0)|答案(3)|浏览(101)

我想在column_1的基础上创建一个新列,它在索引i的每一行上将column_1的所有内容相加到索引i。
我已经找到了一种方法来实现这一点:抓取行并将其求和为每行的索引:

column_array = np.array(df['column_1'])
df['new column'] = [column_array[:n].sum() for n in range(len(column_array)]'

字符串
但是这样做需要从一开始就对每个条目求和,我正在处理大量的大 Dataframe ,所以我想要一个有效的解决方案,因为现在这个求和操作是我脚本的瓶颈。

vx6bjr1n

vx6bjr1n1#

正如BigBen所说,cumsum()正是这样做的。看看您自己的示例,您有一个移动的列。如果这确实是你想要的,你也可以使用shift()。请尝试运行以下代码:

import pandas as pd
import numpy as np

df = pd.DataFrame()

df['column_1'] = [1, 2, 3, 4, 5, 6]
df['cumsum_column'] = df['column_1'].shift().cumsum(axis=0)

column_array = np.array(df['column_1'])
df['your_new_column'] = [column_array[:n].sum() for n in range(len(column_array))]

print(df)

字符串

332nm8kg

332nm8kg2#

您可以使用pandascumsum()函数来获取数据元素的累积和。请尝试以下操作:

df['new_column'] = df['column_1'].cumsum()

字符串

9cbw7uwe

9cbw7uwe3#

我个人不会在这项任务上使用理解力。遍历列并跟踪sum,然后在每次迭代中简单地追加到新列。

column_array = np.array(df['column_1'])
sum_column = [None] * len(column_array)
summ = 0
for i, col in enumerate(column_array):
    summ += col
    sum_column[i] = summ

字符串

相关问题