我想对一些数据进行分组,并且:
在下面的示例中,我想获得顺序为
z
、y
的组,因为 z
的大小为 4,y
的大小为 3。但是删除 x
,因为它的大小为 2。
import pandas as pd
data = [
['x', 1],
['y', 5],
['z', 1],
['x',43],
['y', 22],
['z', 2],
['y', 31],
['z', 3],
['z', 4],
]
df = pd.DataFrame(data, columns=['name', 'value'])
print(df)
dfg = df.groupby('name')
for name,df in dfg:
print(name)
print(df)
电流输出:
name value
0 x 1
1 y 5
2 z 1
3 x 43
4 y 22
5 z 2
6 y 31
7 z 3
8 z 4
x
name value
0 x 1
3 x 43
y
name value
1 y 5
4 y 22
6 y 31
z
name value
2 z 1
5 z 2
7 z 3
8 z 4
预计:
name value
2 z 1
5 z 2
7 z 3
8 z 4
name value
1 y 5
4 y 22
6 y 31
z
一个可能的解决方案:
g = df.groupby('name')
[x for _, x in g if len(x) >= 3]