Python数据帧以获取特定行与总行的比率
一个简单的数据帧。我想要一个百分比来显示22列“Tested”中的行数占总行数的百分比 i、 e。 1.“已测试”列中有5行,共22行Python数据帧以获取特定行与总行的比率,python,dataframe,Python,Dataframe,一个简单的数据帧。我想要一个百分比来显示22列“Tested”中的行数占总行数的百分比 i、 e。 1.“已测试”列中有5行,共22行 数据帧总共有15行 所以这个百分比是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,
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
suspect\u over\u total=suspect\u row/num\u row
表示您正在执行一个int
/int
操作,其结果为0.3333333333
,因此Python将给您一个int
结果,0
正如bubble所说,您应该将其中一个操作数转换为浮点值:
suspect_over_total=浮动(suspect_行)/num_行#0.33333
您还在使用Python 2.x吗。?只需将其中一个数字转换为float:float(可疑行)/num行
@bubble,谢谢。你能回答我吗?@MarkK,顺便说一句,len(df[df[“Tested”]==22])
看起来比df[df[“Tested”]==22]更有效。shape[0]
。