[英]Dividing DataFrame's columns by column of the same DataFrame
我從 csv 讀取了 DataFrame:
Date Name NumOfUsers Value1 Value2 Value3
2018-07-23 09:00 AP1 12 12 24 2
2018-07-23 12:30 AP1 11 33 22 4
2018-07-23 14:05 AP2 43 86 86 8
2018-09-20 11:10 AP1 34 68 17 6
如何將某一天的一個 Name 的所有值相加,然后除以 NumOfUsers 來接收:
Date Name NumOfUsers Value1 Value2 Value3
2018-07-23 AP1 23 1.95 2 0.26
2018-07-23 AP2 43 2 2 0.18
2018-09-20 AP1 34 2 0.5 0.17
現在我使用它:
df_new['Date']=pd.to_datetime(df_new['Date'])
df_new['just_date'] = df_new['Date'].dt.date
df_new.loc[:,"Value1":"Value3"] = df_new.loc[:,"Value1":"Value3"].div(df_new["Value1"], axis=0)
df_new.Value1.groupby([df_new.just_date, df_new.Name]).sum().reset_index().sort_values(by=["Value1"], ascending=False)
但在值字段中,我只收到 0 或 Inf。
首先是所有列的必要sum
,然后除以列NumOfUsers
由DataFrame.div
:
df_new['Date']=pd.to_datetime(df_new['Date'])
df = df_new.groupby([df_new['Date'].dt.date, 'Name']).sum().reset_index()
df.loc[:,"Value1":"Value3"] = df.loc[:,"Value1":"Value3"].div(df["NumOfUsers"], axis=0)
print (df)
Date Name NumOfUsers Value1 Value2 Value3
0 2018-07-23 AP1 23 1.956522 2.0 0.260870
1 2018-07-23 AP2 43 2.000000 2.0 0.186047
2 2018-09-20 AP1 34 2.000000 0.5 0.176471
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.