数据框中特定行中列的总和值

Sum values of a coulmn in specific rows in a dataframe

我想了解如何在数据框中指定“子集和”

我的数据框如下所示:

Data/Time 列是数据帧的索引

Sum = data['A'].sum()

我得到了A列的总和

我的目标是总结 2022-03-18 07:37:51 和 2022-03-18 07:37:55

之间的行子集

所以我得到一个“总和”行:

如何指定要为每一列求和的行号,尤其是当索引为日期时间格式时?

data[(data.index >= '2020-01-01 00:00:16') & (data.index <= '2020-01-01 00:00:17')].sum(axis=0)

简单地说,对每个列总和使用 axis = 0,并通过 a.index >= '2020-01-01 00:00:16' 和等效的上限进行检查

如果你想使用日期时间模块:

from datetime import datetime
data[(data.index >= datetime(2020, 1, 1, 0, 0, 16)) & (data.index <= datetime(2020, 1, 1, 0, 0, 17))].sum(axis=0)

如果您需要 select 行的更通用的标准,而不仅仅是时间范围,那么您可以使用这个:

df = pd.DataFrame([[12,5,7], [13,7,4], [14,7,23], [15,71,9], [16,5,4], [17,55,42]], columns=['T', 'A', 'B'])

print(df)
    T   A   B
0  12   5   7
1  13   7   4
2  14   7  23
3  15  71   9
4  16   5   4
5  17  55  42

range_idx = df['T'].between(13,15) # or another selection
df[range_idx]

    T   A   B
1   13  7   4
2   14  7   23
3   15  71  9

df[range_idx][['A','B']].sum()

Out[42]:
A    85
B    36