熊猫数据帧操作支点/ groupby / reshape

时间:2020-02-28 20:20:32

标签: pandas pandas-groupby

我正在尝试为每个地理位置的变量计算非零值,非常感谢您的帮助。

输入数据框

enter image description here

所需的数据框

enter image description here

文本格式输入数据框

    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

1 个答案:

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