如何在数据框熊猫中插入数据框

时间:2019-10-04 01:34:36

标签: python pandas dataframe

我有两个共有一列的数据框:用户和应用程序。 每个用户可以有多个应用程序,每个应用程序都有名称和安装日期。

加入两个数据框后,我得到:

user_id ...  app_name  ins_date
user1   ...   app1      1/1/2020
user1   ...   app2      1/7/2020
user2   ...   NULL      NULL
user3   ...   app1      1/5/2020
user4   ...   app1      1/3/2020

我想避免重复用户,但又不丢失应用程序详细信息。可以在用户的​​df内插入应用程序的df吗?

类似的东西:

user_id ...  app
user1   ...   {'app_name': ['app1', 'app2'], 'ins_date': ['1/1/2020', '1/7/2020']}
user2   ...   NULL      
user3   ...   {'app_name': ['app1'], 'ins_date': ['1/5/2020']}
user4   ...   {'app_name': ['app1'], 'ins_date': ['1/3/2020']}  

我尝试了DataFrameGroupBy.apply(),但是我只能列出其中一列。

还有其他方法吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试

df.groupby('user_id').apply(lambda x: {'app_name': x['app_name'].tolist(), 'ins_date': x['ins_date'].tolist()})

输出

user_id
user1    {'app_name': ['app1', 'app2'], 'ins_date': ['1/1/2020', '1/7/2020']}
user2    {'app_name': [nan], 'ins_date': [nan]}                              
user3    {'app_name': ['app1'], 'ins_date': ['1/5/2020']}                    
user4    {'app_name': ['app1'], 'ins_date': ['1/3/2020']}                    
dtype: object

更新:使用pd.set_option('display.max_colwidth',-1)显示最大列宽