汇总每个类别的数据框和计数

时间:2018-05-20 15:57:41

标签: python pandas

我有以下数据框:

time             city             
2018-05-8        sydney        
2018-05-8        sydney
2018-05-8        melbourne
2018-05-9        sydney
2018-05-9        melbourne 

我想获得以下内容:

time             syndey_count  melbourne_count 
2018-05-8        2             1
2018-05-9        1             1

到目前为止,我已经成功分组,然后按城市汇总:

df.groupby('time').agg({'city': 'count'})

但这只是给了我:

time             city  
2018-05-8        3             
2018-05-9        2             

3 个答案:

答案 0 :(得分:3)

您可以使用:

#define model

model = Sequential()
model.add(LSTM(100, input_shape=(n_timesteps_in, n_features)))
model.add(RepeatVector(n_timesteps_in))
model.add(LSTM(100, return_sequences=True))
model.add(TimeDistributed(Dense(n_features, activation='tanh')))
model.compile(loss='mse', optimizer='adam', metrics=['mae'])

history=model.fit(train, train, epochs=epochs, verbose=2, shuffle=False)

答案 1 :(得分:1)

另一种解决方案

df.groupby(['time', 'city']).size().unstack().add_suffix('_count')

答案 2 :(得分:1)

只需crosstab

pd.crosstab(df.time,df.city)
Out[77]: 
city       melbourne  sydney
time                        
2018-05-8          1       2
2018-05-9          1       1
相关问题