我有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
答案 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