Gia*_* Do 5 python dataframe pandas
我有一个数据框
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
Run Code Online (Sandbox Code Playgroud)
我想在每个值为valueis 的组之后添加一行NaN。欲望输出是:
group value
0 1 2
1 1 3
2 1 NaN
3 2 NaN
4 2 5
5 2 4
6 2 NaN
Run Code Online (Sandbox Code Playgroud)
在我的真实数据集中,除了value,我还有很多组和更多列,我希望它们都NaN在新添加的行中。
非常感谢您的帮助
concat 和 appends = 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)
Run Code Online (Sandbox Code Playgroud)
apply与append[1]df1.groupby('group').apply(
lambda d: d.append({'group': d.name}, ignore_index=True).astype({'group': int})
).reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)
两者都产生:
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
Run Code Online (Sandbox Code Playgroud)
[1]此解决方案由您当地的@piRSquared带给您
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |