【发布时间】:2021-04-25 15:24:00
【问题描述】:
我有一个 Python Pandas 数据框,其中包含下面给出的数据示例。
- 数据有多个唯一 ID,如第 2 列所示。我试图保留计数大于 20 的唯一/不同 ID 的数据。新的dataframe应该有unique_id大于20的数据,其余的忽略。
- 例如,如果
unqiue_id '105714'在数据中出现20次,则保留相关列的数据,否则忽略它。
我试过了:
df['unique_id'].value_counts().reset_index(name="count").query("count > 20")["unique_id"]
但它不起作用。
sample_data.csv
datetime, unique_id, Usage
2018-01-28 00:00:00, 105714, 409.365
2018-01-28 00:05:00, 105714, 409.18
2018-01-28 00:10:00, 105714, 2424.2399
2018-01-28 00:15:00, 105714, 225.4576
2018-01-28 00:20:00, 206714, 225.2768
2018-01-28 00:25:00, 105714, 2382.1309
2018-01-28 00:30:00, 305714, 410.685
2018-01-28 00:35:00, 108714, 317.1043
【问题讨论】:
-
那么,您要删除所有具有出现少于 20 次的 unique_id 的行吗?
-
您是否尝试过将
groupby与count一起使用并查询任何其他值大于20 的列df.groupby(['unique_id']).count().query("Usage > 20").index.values?
标签: python python-3.x pandas dataframe pandas-groupby