我正在尝试为每个地理位置的变量计算非零值,非常感谢您的帮助。
输入数据框
所需的数据框
文本格式输入数据框
Geography A B C
0 Europe 0 1.5 3.2
1 Europe 1 1.6 2.0
2 Europe 2 1.6 0.0
3 Europe 1 1.6 0.0
4 Asia 1 1.6 0.0
5 Asia 1 1.6 0.0
6 America 0 1.6 1.0
7 America 1 1.6 1.0
8 America 1 1.6 1.0
所需的输出
Geography Variables Count
0 Europe A 3
1 Europe B 4
2 Europe C 2
3 Asia A 2
4 Asia B 2
5 Asia C 0
6 America A 2
7 America B 3
8 America C 3
答案 0 :(得分:1)
您可以执行groupby
:
(df.set_index('Geography')
.ne(0)
.groupby('Geography', sort=False)
.sum()
.stack()
.reset_index()
)
输出:
Geography level_1 0
0 Europe A 3.0
1 Europe B 4.0
2 Europe C 2.0
3 Asia A 2.0
4 Asia B 2.0
5 Asia C 0.0
6 America A 2.0
7 America B 3.0
8 America C 3.0