亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Pandas DataFrame 計算百分比

使用 Pandas DataFrame 計算百分比

蕪湖不蕪 2023-07-18 15:21:18
這 5 個國家在歷屆奧運會上獲得的獎牌總數中,他們各自獲得的獎牌數所占的百分比是多少?我已使用 panda dataframe 將所有 excel 文件合并到一個文件中,但現在仍堅持查找百分比? ? Country? ? ? Gold? ? ?Silver? ? Bronze? Total0? ?USA? ? ? ? ? 10? ? ? ?13? ? ? ? ?11? ? ? 341? ?China? ? ? ? 2? ? ? ? 2? ? ? ? ? 4? ? ? ?82? ?UK? ? ? ? ? ?1? ? ? ? 0? ? ? ? ? 1? ? ? ?23? ?Germany? ? ? 12? ? ? ?16? ? ? ? ?8? ? ? ?364? ?Australia? ? 2? ? ? ? 0? ? ? ? ? 0? ? ? ?20? ?USA? ? ? ? ? 9? ? ? ? 9? ? ? ? ? 7? ? ? ?251? ?China? ? ? ? 2? ? ? ? 4? ? ? ? ? 5? ? ? ?112? ?UK? ? ? ? ? ?0? ? ? ? 1? ? ? ? ? 0? ? ? ?13? ?Germany? ? ? 11? ? ? ?12? ? ? ? ?6? ? ? ?294? ?Australia? ? 1? ? ? ? 0? ? ? ? ? 1? ? ? ?20? ?USA? ? ? ? ? 9? ? ? ? 15? ? ? ? ?13? ? ? 371? ?China? ? ? ? 5? ? ? ? 2? ? ? ? ? 4? ? ? ?112? ?UK? ? ? ? ? ?1? ? ? ? 0? ? ? ? ? 0? ? ? ?13? ?Germany? ? ? 10? ? ? ?13? ? ? ? ?7? ? ? ?304? ?Australia? ? 2? ? ? ? 1? ? ? ? ? 0? ? ? ?3import pandas as pdimport numpy as npimport matplotlib.pyplot as pltdf= pd.DataFrame()for f in ['E:\\olympics\\Olympics-2002.xlsx','E:\\olympics\\Olympics-?2006.xlsx','E:\\olympics\\Olympics-2010.xlsx',? ? ? 'E:\\olympics\\Olympics-2014.xlsx','E:\\olympics\\Olympics-?2018.xlsx']:data = pd.read_excel(f,'Sheet1')df = df.append(data)df.to_excel("E:\\olympics\\combineddata.xlsx")data = pd.read_excel("E:\\olympics\\combineddata.xlsx")print(data)final_Data={}for i in data['Country']:x=it1=(data[(data.Country==x)].Total).tolist()print("Name of Country=",i, int(sum(t1)))final_Data.update({i:int(sum(t1))})t3=data.groupby('Country').Total.sum()t2= df['Total'].sum()t4= t3/t2*100print(t3)print(t2)print(t4)這是如何得到答案的......現在我需要將其拉入情節我想把它放在餡餅中
查看完整描述

2 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

假設您已將 DataFrame 創建為'df'. 然后您可以執行以下操作,首先分組,然后計算百分比。


df = df.groupby('Country').sum()

df['Gold_percent']   = (df['Gold']   / df['Gold'].sum()) * 100

df['Silver_percent'] = (df['Silver'] / df['Silver'].sum()) * 100

df['Bronze_percent'] = (df['Bronze'] / df['Bronze'].sum()) * 100

df['Total_percent']  = (df['Total']  / df['Total'].sum()) * 100

df.round(2)


print (df)

輸出如下:


           Gold  Silver  Bronze  ...  Silver_percent  Bronze_percent  Total_percent

Country                          ...                                               

Australia     5       1       1  ...            1.14            1.49           3.02

China         9       8      13  ...            9.09           19.40          12.93

Germany      33      41      21  ...           46.59           31.34          40.95

UK            2       1       1  ...            1.14            1.49           1.72

USA          28      37      31  ...           42.05           46.27          41.38


查看完整回答
反對 回復 2023-07-18
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

我沒有你所擁有的確切數據集。我正在用類似的數據集進行解釋。嘗試添加一列,其中包含跨行的獎牌總和。然后通過將所有行除以整列的總和來找到百分比。


我將此作為模型發布,請檢查此


import pandas as pd


cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4'],

        'ExshowroomPrice': [21000,26000,28000,34000],'RTOPrice': [2200,250,2700,3500]}


df = pd.DataFrame(cars, columns = ['Brand', 'ExshowroomPrice','RTOPrice'])


            Brand  ExshowroomPrice  RTOPrice

0     Honda Civic            21000      2200

1  Toyota Corolla            26000       250

2      Ford Focus            28000      2700

3         Audi A4            34000      3500





df['percentage']=(df.ExshowroomPrice +df.RTOPrice) * 100

/(df.ExshowroomPrice.sum() +df.RTOPrice.sum())

print(df)




            Brand  ExshowroomPrice  RTOPrice  percentage

0     Honda Civic            21000      2200   19.719507

1  Toyota Corolla            26000       250   22.311942

2      Ford Focus            28000      2700   26.094348

3         Audi A4            34000      3500   31.874203


查看完整回答
反對 回復 2023-07-18
  • 2 回答
  • 0 關注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號