我有一些数据已经入库,然后按入库分组,使用.count对每个入库中的条目进行计数,并查询每个入库的样本数量
import pandas as pd
import numpy as np
A = np.random.random(10000)
bins = np.arange(0, max(A), 0.03)
data_bins = pd.cut(A, bins = bins, precision = 100)
df = pd.DataFrame({"A": A,
"bin": data_bins})\
.sort_values(by = ["bin"])\
.reset_index(drop = True)\
.dropna()
print(df.head())
# For example, only take bins with more than 310 entries in each
valid_bins = df.groupby("bin")[["A"]].count().query("A > 310")
print(valid_bins)因此,现在我知道了在我的大型数据集中使用valid_bins查找哪些存储库。现在,我如何在原始df中仅定位这些存储箱?
发布于 2018-01-08 19:26:28
我认为Series的transform需要和原始DataFrame的大小相同,所以可以按boolean indexing过滤吗
df1 = df[df.groupby("bin")["A"].transform('count') > 310]或者将更灵活的解决方案与filtration配合使用
df1 = df.groupby("bin").filter(lambda x: x["A"].count() > 310)
print(df1.head())
A bin
674 0.080059 (0.06, 0.09]
675 0.074179 (0.06, 0.09]
676 0.062529 (0.06, 0.09]
677 0.087312 (0.06, 0.09]
678 0.070065 (0.06, 0.09]https://stackoverflow.com/questions/48149306
复制相似问题