gpt4 book ai didi

python - Pandas - 为 Pandas 中的每个组插入空白行

转载 作者:太空宇宙 更新时间:2023-11-04 07:05:20 24 4
gpt4 key购买 nike

我有一个数据框

import pandas as pd
import numpy as np
df1=pd.DataFrame({'group':[1,1,2,2,2],
'value':[2,3,np.nan,5,4]})
df1

group value
0 1 2
1 1 3
2 2 NaN
3 2 5
4 2 4

我想在每个 value 的值为 NaN 的组之后添加一行。期望输出是:

   group   value
0 1 2
1 1 3
2 1 NaN
3 2 NaN
4 2 5
5 2 4
6 2 NaN

在我的真实数据集中,除了 value 之外,我还有很多组和更多列,我希望它们在新添加的行中都是 NaN

非常感谢您的帮助

最佳答案

concatappend

s = df1.groupby('group')
out = pd.concat([i.append({'value': np.nan}, ignore_index=True) for _, i in s])
out.group = out.group.ffill().astype(int)

applyappend[1]

df1.groupby('group').apply(
lambda d: d.append({'group': d.name}, ignore_index=True).astype({'group': int})
).reset_index(drop=True)

两者都产生:

   group  value
0 1 2.0
1 1 3.0
2 1 NaN
3 2 NaN
4 2 5.0
5 2 4.0
6 2 NaN

[1] 本解决方案由您的本地@piRSquared提供给您

关于python - Pandas - 为 Pandas 中的每个组插入空白行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51884792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com