熊猫列值分组到列

时间:2020-04-16 05:35:42

标签: pandas pandas-groupby

所以说我有这个数据框

data = [['MS', 'Boston', 'emergency', 'hname11'], ['MS', 'Boston', 'emergency', 'hname47'], ['MS', 'Boston', 'normal', 'hname72'], ['MS', 'Cambridge', 'emergency', 'hname32'], ['FL', 'Miami', 'normal', 'hname67'], ['CA', 'Los Angeles', 'emergency', 'hname91']]
df = pd.DataFrame(data, columns = ['state', 'city', 'status', 'name'])
df
state   city        status      name
0   MS  Boston      emergency   hname11
1   MS  Boston      emergency   hname47
2   MS  Boston      normal      hname72
3   MS  Cambridge   emergency   hname32
4   FL  Miami       normal      hname67
5   CA  Los Angeles emergency   hname91

所以我需要计算每个城市的紧急情况和正常值,并将其作为一列,就像这样

state    city          emergency_count    normal_count
MS       Boston        2                  1
MS       Cambridge     1                  0
FL       Miami         0                  1
CA       Los Angeles   1                  0

我的目标是每个城市只有一个描述性行,而不是包含分裂信息的几行。 到目前为止,我一直在使用groupby,我几乎可以得到所需的东西

df.groupby(['state', 'city'])['status'].value_counts().reset_index(name='total')
state   city        status      total
0   CA  Los Angeles emergency   1
1   FL  Miami       normal      1
2   MS  Boston      emergency   2
3   MS  Boston      normal      1
4   MS  Cambridge   emergency   1

但是我无法创建每个城市的紧急状态和正常状态总和的列。

1 个答案:

答案 0 :(得分:0)

请对statestatus,value_counts unstackdf2=df.groupby(['state','city'])['status'].value_counts().unstack().reset_index().fillna(0) df2.columns=['state','city','emergency_count','normal_count'] df2 进行分组。然后重命名列

flutter config --android-sdk <path-to-your-android-sdk-path>

输出

enter image description here