如何用值分组创建新的熊猫数据框?

时间:2019-06-08 02:20:01

标签: python pandas pandas-groupby

我有3个位置的数据。我想按位置分组并创建新的熊猫DataFrame。

我的pandas DataFrame如下:

Day  Time  LocationA  LocationB
1    8     XX         YY
1    8     XX         ZZ
1    8     XX         ZZ    
1    9     YY         ZZ
1    9     XX         YY
1    9     ZZ         XX
1    9     ZZ         YY
2    8     XX         ZZ
2    8     XX         YY

我需要如下的pandas DataFrame:

Day  Time  Location  A  B
1    8     XX        3  0
1    8     YY        0  1
1    8     ZZ        0  2
1    9     XX        1  1
1    9     YY        1  2
1    9     ZZ        2  1
2    8     XX        2  0
2    8     YY        0  1
2    8     ZZ        0  1

1 个答案:

答案 0 :(得分:4)

在您使用melt然后使用groupby + stack的情况下

yourdf=df.melt(['Day','Time']).groupby(['Day','Time','variable']).value.value_counts().unstack(level=2,fill_value=0).reset_index()
yourdf
Out[405]: 
variable  Day  Time value  LocationA  LocationB
0           1     8    XX          3          0
1           1     8    YY          0          1
2           1     8    ZZ          0          2
3           1     9    XX          1          1
4           1     9    YY          1          2
5           1     9    ZZ          2          1
6           2     8    XX          2          0
7           2     8    YY          0          1
8           2     8    ZZ          0          1