python - 根据唯一 ID Pandas 数据框收集行
问题描述
我有一个大型时间序列数据集,其中一些观察值(每个都有一个唯一的 ID)具有不同的长度。我还有一个“部分”列,用于计算每个唯一 ID 的时间步或行。
df.groupby([df['ID']]).agg({'count'})
A B Z
count count ... count
ID
25782 194 194 194
25783 198 198 198
25784 194 194 194
25785 192 192 192
... ... ... ... ...
25787 192 192 192
25788 195 195 195
25789 196 196 196
25790 200 200 200
假设我想创建一个仅包含唯一 ID 长度 = 192 的新数据框。即“部分”最多为 192。
到目前为止,我已经尝试了以下但无济于事。请帮忙。
mask = df.groupby('ID')(len(df['Section']) == 192)
df = df.loc[mask]
print(df)
和
df.groupby('ID').df[df['Section'].max() == 192]
编辑
期望的输出
new_df.groupby([new_df['ID']]).agg({'count'})
A B Z
count count ... count
ID
25752 192 192 192
25137 192 192 192
25970 192 192 192
25440 192 192 192
解决方案
您可以使用filter
aftergroupby
仅保留ID
'Section' 列的长度为 192 的位置,例如:
new_df = df.groupby('ID').filter(lambda x: len(x['Section']) == 192)
然后,当您这样做时,new_df.groupby('ID').agg({'count'})
您应该得到预期的输出
推荐阅读
- android - 需要帮助在 android studio 中进行特定设计
- javascript - Crockford 的 Javascript Applicative Order Y Combinator 语法构造解释?
- google-apps-script - 将 Google 表单的编辑响应 URL 添加到其电子表格
- react-native - 在抽屉导航器中刷新“contentComponent”(React-Native)
- json - url 中的查询参数在 laravel json 响应中不起作用?
- java - 如何使用Java获取(检索)mysql数据库数据到数组列表并使用索引打印
- javascript - wordpress 以编程方式添加帖子标签
- c++ - 使用 gl_PointSize 来扩大和缩小点
- react-native - DeviceEventEmitter.addListener 警告在现有状态转换期间无法更新
- python - 尝试从列表中删除事件会导致索引错误