我正在寻找一种解决方案,可以给我列列表中仅一个值(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
。有什么想法吗?
答案 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]