Pandas 对数据帧中的条目进行分组和计数
我不熟悉编程和Pandas,我想举一个示例,说明如何应用分组函数,该函数还应用一些计数器来减少以下数据帧: 小孩 组名 状态 名称1 A. 好啊 姓名2 A. 让开 名字3 B 好啊 尝试: 输出: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
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