这是我正在使用的一些模拟数据的一小部分-它的形式我称之为“主”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的新手,所以我不确定这些是错误的方法,还是我没有正确使用它们。
有什么建议吗?
谢谢
发布于 2018-06-06 02:47:18
您可以使用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
https://stackoverflow.com/questions/50706598
复制相似问题