【问题标题】:Summing values in the same column based on conditions根据条件对同一列中的值求和
【发布时间】:2021-05-12 01:22:22
【问题描述】:

我有一个如下所示的数据框“国家/地区”:

Country
1
2
1
3
4
5
4
2
2
3
4
4
3
4
5

我使用下面的代码计算列中每个值的百分比:

percent = df_test['Country'].value_counts(normalize=True) * 100

上面的代码给出了值 1 到 5 的各个百分比。

但是,我想一起计算 1 和 3 的总百分比。其余值应单独相加。

感谢任何有关如何做到这一点的线索。

非常感谢。

【问题讨论】:

  • 为什么不把你得到的 1 和 3 的百分比相加,然后得到两者的总百分比?我在这里错过了什么吗?
  • 可以的。但是实际的数据集包含超过 100 个这样的行,所以我希望是否可以使用代码来完成。
  • 都是1到5吗?
  • 在整个数据集中,它们很多,不仅仅是1直到5。

标签: dataframe percentage


【解决方案1】:

那么这怎么行不通呢? @吉山

ratio_1 = df_test['Country'].value_counts(normalize=True)['1']
ratio_3 = df_test['Country'].value_counts(normalize=True)['3']
percent_1_3 = (ratio_1 + ratio_3)*100

【讨论】:

  • 我在问题中稍微编辑了该列。第一列没有正确解释我的数据集。 iloc 在这种情况下也可以工作吗?并且有不同的数据集具有相同的列。它们都有不同的位置 1-5。
  • @Jishan 我已经编辑了我的答案,它应该可以工作,但是数据结构是
  • @Jishan 希望 1,2,3 ... 是您数据集中的整数,而不是像 '1', '2', '3', ... 这样的字符串,如果是,请添加引号字符串
  • 哦,它们实际上是字符串而不是整数。
  • 然后在你的答案中将它们用单引号括起来
猜你喜欢
  • 2021-10-12
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多