如何使用主DF中的数据创建摘要DF?

时间:2018-06-05 18:21:09

标签: python pandas dataframe

这是我正在使用的一些模拟数据的一个小提取 - 它形成了我称之为“主要”DF的形式。它有多个客户密钥,每个密钥可以有多个设备,可以在几天内访问wifi。

Customer Account Key  Device Ref  Date        Data Used (mb)
ABC123                Dev1        03/06/2018  100
ABC123                Dev2        03/06/2018  500
ABC123                Dev3        03/06/2018  250
ABC123                Dev1        04/06/2018  600
ABC123                Dev2        04/06/2018  1000
ABC123                Dev3        04/06/2018  350

我想在第二个DF中总结这个日期,它看起来像这样

Customer_Account_Key Total_Devices Total_Days Total_Data_Used
ABC123               3             2          2800

到目前为止,我已设法创建第二个DF,每个唯一客户帐户密钥只有一行

df_users['Customer Account Key'] = df_data['Customer Account Key'].unique()

但我真的很难根据新DF中的每个客户帐户密钥从主DF中提取摘要信息。

我玩过Groupby和df.loc,但我没有得到任何结果。我是Python的新手,所以我不确定这些是错误的方法,还是我没有正确使用它们。

任何指针?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用groupby + agg功能:

# aggregate data
df = df.groupby('Customer').agg({'Account_Key': {'Total_Devices':'nunique'},
                                 'Device_Ref_Date':{'Total_Days':'nunique'},
                                 'Data_Used':{'Total_Data_Used':'sum'}})

# remove multiindex column names
df.columns=df.columns.droplevel()
df = df.reset_index()

print(df)

   Customer  Account_Key  Device_Ref_Date  Data_Used
0   ABC123            3                2       2800