如何在Pandas中计算指定行下方行总和并重构数据集?
替换DataFrame第二行为下方行的列总和并保留指定行
现有如下格式的数据集:
crawled_fag tech_flag ug_flag 0 1 2 0 1 6 0 0 2 2 0 1 3 1 0 1 4 0 1 0 5 0 7 0需要将第二行(索引为1的行)的值替换为其下方所有行(索引2到5)对应列的总和,最终得到如下结果:
crawled_fag tech_flag ug_flag 0 1 2 0 1 9 8 2
实现步骤(基于Python Pandas)
- 导入Pandas库并创建/读取数据集
- 计算目标行下方所有行的列总和
- 替换目标行的值为计算出的总和
- 保留需要的行
完整代码示例
import pandas as pd # 构造原始数据集 data = { 'crawled_fag': [1, 6, 2, 1, 0, 0], 'tech_flag': [2, 0, 0, 0, 1, 7], 'ug_flag': [0, 0, 1, 1, 0, 0] } df = pd.DataFrame(data) # 计算索引1下方所有行(索引2至末尾)的列总和 below_row_sum = df.loc[2:].sum() # 将索引1的行替换为计算得到的总和 df.loc[1] = below_row_sum # 仅保留索引0和1的行 df = df.loc[[0, 1]] # 输出结果 print(df)
代码说明
df.loc[2:]:选取从索引2开始到末尾的所有行,即第二行下方的所有数据行.sum():对选中的行按列计算总和,得到各列的累计值df.loc[1] = below_row_sum:将计算出的列总和赋值给索引为1的行,完成替换df.loc[[0, 1]]:筛选出仅保留前两行的DataFrame,得到最终目标结果
内容的提问来源于stack exchange,提问作者Patrik
相关产品推荐
相关产品推荐

