我有 3 个位置的数据。我想按位置分组并创建新的 pandas 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
最佳答案
在你的情况下使用 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
关于python - 如何使用按值分组创建新的 pandas DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56502924/