Pandas 对数据帧中的条目进行分组和计数

Pandas 对数据帧中的条目进行分组和计数,pandas,dataframe,Pandas,Dataframe,我不熟悉编程和Pandas,我想举一个示例,说明如何应用分组函数,该函数还应用一些计数器来减少以下数据帧: 小孩 组名 状态 名称1 A. 好啊 姓名2 A. 让开 名字3 B 好啊 尝试: 输出: state ko ok All groupName A 1 1 2 B 0 1 1 All 1 2 3 并(几乎)与预期产出相匹配: (pd.crosstab(df['gr

我不熟悉编程和Pandas,我想举一个示例,说明如何应用分组函数,该函数还应用一些计数器来减少以下数据帧:

小孩 组名 状态 名称1 A. 好啊 姓名2 A. 让开 名字3 B 好啊 尝试:

输出:

state      ko  ok  All
groupName             
A           1   1    2
B           0   1    1
All         1   2    3
并(几乎)与预期产出相匹配:

(pd.crosstab(df['groupName'], df['state'], margins='sum', margins_name='Children')
   .drop('Children')
   .add_prefix('noOf')
   .reset_index()
)
您可以这样尝试:

df1 = df.groupby(['groupName']).agg({'child': 'count', 'state': lambda x: x.value_counts().to_dict()}).add_prefix('noOf').reset_index()
df2 = pd.concat([df1.drop('noOfstate', axis=1), pd.DataFrame(df1['noOfstate'].tolist()).add_prefix('noOf')], axis=1).fillna(0)
df2:

    groupName   noOfchild   noOfok  noOfko
0   A           2           1       1.0
1   B           1           1       0.0
    groupName   noOfchild   noOfok  noOfko
0   A           2           1       1.0
1   B           1           1       0.0