一个简单的数据框。我想有一个百分比来显示“已测试”列中的22的行数,占总行数。
即 1.“已测试”列中有5行22。
所以百分比是5/15 = 0.33
我在下面尝试过,但给出了零。
我该如何纠正?谢谢。
import pandas as pd
data = {'Unit_Weight': [335,335,119,119,52,452,19,19,19,165,165,165,724,724,16],
'Tested' : [22,12,14,16,18,20,22,24,26,28,22,22,48,50,22]}
df = pd.DataFrame(data)
num_row = df.shape[0]
suspect_row = df[df["Tested"] == 22].shape[0]
suspect_over_total = suspect_row/num_row
print num_row # 15
print suspect_row # 5
print float(suspect_over_total) # 0.0
答案 0 :(得分:1)
suspect_over_total = suspect_row/num_row
表示您正在执行int
结果的int
/ 0.3333333
操作,因此Python将为您提供int
结果,{{1} } 在这种情况下。
正如气泡所说,您应该将操作数之一转换为0
:
float