首页 > 解决方案 > 根据条件在熊猫数据框中插入一行

问题描述

根据另一列在 pandas df 中插入一行

样本df

数数 一个
是的 23
是的 23
是的 40
是的 40
是的 40

我想要的结果 -> 在类似 A 值的末尾插入“结果”

数数 一个
是的 23
是的 23
结果
是的 40
是的 40
是的 40
结果

任何帮助表示赞赏

标签: pythonpandasdataframenumpyappend

解决方案


你可以使用这个逻辑

import pandas as pd

df = pd.DataFrame({"count": ["yes", "yes", "yes", "yes", "yes"],
                   "A": [23, 23, 40, 40, 40]})

new_df = pd.DataFrame(columns=["count", "A"])

# df['shift'] = df['A'].shift() != df['A']
# df['cumsum'] = df['shift'].cumsum()

for k, v in df.groupby((df['A'].shift() != df['A']).cumsum()):

    new_df = new_df.append(v[["count", "A"]], ignore_index=True)
    new_df = new_df.append({"count": "result", "A": None}, ignore_index=True)

print(new_df)

输出:

    count     A
0     yes    23
1     yes    23
2  result  None
3     yes    40
4     yes    40
5     yes    40
6  result  None

推荐阅读