在列列表中获取一个值的百分比

时间:2019-06-19 06:17:55

标签: python pandas

我正在寻找一种解决方案,可以给我列列表中仅一个值(nr'1')的百分比。该列表包含3个数字:1、2和3。7200行。

下面的代码为我提供了完整的数字

Clouds = df['CloudC'].value_counts(normalize=True).round(decimals=4)*100

3    55.60
1    32.99
2    11.42
Name: CloudC, dtype: float64

如果可能的话,用一个代码:3个数字,按百分比顺序排列:1,2,3,中间包括','

示例:32.99,11.42,55.60

如果不可能,则将每个值(1,2,3)的代码分开。但是我只需要百分比,而不是值的名称即可。

示例:32.99 (from value 1)

谢谢。

更新:这3个选项效果很好。 我如何让命令行始终查找数字1、2和3。我忘记了这一点,因为我正在使用的文档目前在该列中都显示了1、2和3。但是我希望程序始终寻找1,2,3,如果未建立值,则显示例如:0.00, 0.00, 100。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用Series.sort_index,将Series.astype的值转换为字符串,然后使用join

print (', '.join(Clouds.sort_index().astype(str)))
32.99, 11.42, 55.6

另一种解决方案,谢谢@Vishnudev:

print (Clouds.sort_index().astype(str).str.cat(sep=', '))
32.99, 11.42, 55.6

如果需要列表:

print (Clouds.sort_index().tolist())
[32.99, 11.42, 55.6]