在下面的表格中,我尝试找出每个Make的'Number of Case‘占总数的百分比(’Number of Case‘)
Make | age | mileage | Test Result | Number of Cases
0 ABARTH 0-3 <10,000 P 6
1 ABARTH 0-3 <50,000 P 23
2 ABARTH 0-3 <50,000 F 2
3 ABARTH 0-3 <50,000 PRS 1
4 ABARTH 0-3 <100,000 P 2
5 ABARTH 0-3 <100,000 F 1
6 ABARTH 3-5 <10,000 P 5
7 ABARTH 3-5 <50,000 P 77因此,我将该表分组如下:
Make Number of Cases
ABARTH 139
AC 30
AC (ELECTRIC) 33
ACCESS 7尝试使用for循环和追加我需要的值,但没有结果,因为我非常确定我使用的追加函数是错误的:
rate = pd.Series()
for index, row in pass_rates.iterrows():
rate.append(row['Number of Cases']/test_makes[test_makes['Make'] == row['Make']])返回对象是一个空序列
所以基本上我要找的结果应该是这样的
Make | age | mileage | Test Result | %
0 ABARTH 0-3 <10,000 P 0.043
1 ABARTH 0-3 <50,000 P 0.165
2 ABARTH 0-3 <50,000 F 0.014发布于 2016-03-04 01:14:45
为了得到您的结果,我将根据groupby结果向您现有的DataFrame添加一个Total Cases列,然后在现有DataFrame中执行除法。
total_cases = df.groupby('Make')['Number of Cases'].sum()
df['Total Cases'] = df['Make'].map(total_cases)
df['%'] = df['Number of Cases'] / df['Total Cases']此时,如果您不再希望保留Total Cases列,则可以将其删除。
https://stackoverflow.com/questions/35778088
复制相似问题