python - 如果缺少行,则获取第 n 行组并填充“无”
问题描述
我有一个df:
a b c
1 2 3 6
2 2 5 7
3 4 6 8
我想要 groupby 的每一行:
w=df.groupby('a').nth(0) #first row
x=df.groupby('a').nth(1) #second row
df 的第二组没有第二行,在这种情况下,我想要“无”值。
[In:] df.groupby('a').nth(1)
[Out:]
a b c
1 2 5 7
2 None None None
或者更简单:df 在组中有 1-4 行。如果一个组少于 4 行,我想扩展该组,使其有 4 行并用“无”填充缺失的行。之后,如果我选择第 n 行组,我就会得到所需的输出。
解决方案
如果您只对特定的行感兴趣,nth
但在某些组中没有足够的行,您可以考虑使用列reindex
中的unique
值,例如:
print (df.groupby('a').nth(1).reindex(df['a'].unique()).reset_index())
a b c
0 2 5.0 7.0
1 4 NaN NaN
推荐阅读
- swift - account.register 的无效请求签名错误
- android - framelayout.addView(view) 重叠/删除工具栏?
- c# - 使用自定义队列处理器在 WebJobs 上获取单例行为
- ms-access - 从连续表单中删除空文本框,但显示带有数据的文本框
- wordpress - 重新排列(按优先级排序)Woocommerce 我的帐户字段
- java - 了解spring-integration service-activator
- reactjs - 使用 Create React App 运行 Jest 测试时文档为空
- postgresql - plpgsql 用于计算偏度和峰度的 Postgresql 函数
- c# - 没有 Azure 或领域的 UWP 的 Xamarin 离线第一个解决方案
- javascript -
没有或\n的HTML换行符?