簡體   English   中英

按相同 DataFrame 的列划分 DataFrame 的列

[英]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 ,然后除以列NumOfUsersDataFrame.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM