【发布时间】:2021-08-23 11:13:51
【问题描述】:
我正在使用 Pandas 中的两个数据框,看起来像下面这样(不过,我正在使用的数据框有更多列):
>>> df_download
date | app_name | downloads | app_id
__________________________________________________________
0 2021-01-01 | music app | 500 | 100
1 2021-01-01 | food delivery app | 900 | 110
2 2021-01-01 | fitness app | 1200 | 120
3 2021-01-02 | music app | 700 | 100
4 2021-01-02 | food delivery app | 750 | 110
5 2021-01-02 | fitness app | 3000 | 120
6 2021-01-03 | music app | 800 | 100
7 2021-01-03 | food delivery app | 100 | 110
8 2021-01-03 | fitness app | 400 | 120
>>> df_active_users
date | app_name | active_users | app_id
_______________________________________________________________
0 2021-01-01 | music app | 0 | 100
1 2021-01-01 | food delivery app | 30000 | 110
2 2021-01-01 | fitness app | 90000 | 120
3 2021-01-02 | music app | 15000 | 100
4 2021-01-02 | food delivery app | 0 | 110
5 2021-01-02 | fitness app | 80000 | 120
6 2021-01-03 | music app | 20000 | 100
7 2021-01-03 | food delivery app | 50000 | 110
8 2021-01-03 | fitness app | 40000 | 120
我的目标是合并它们。我设法做到了,但不知何故,我丢失了一个应用程序。送餐应用突然消失。我使用了这段代码:
df_merged = pd.merge(df_active_users[['date', 'active_users', 'app_id', 'app_name']],
df_downloads[['date', 'downloads', 'app_id']], on=['date', 'app_id', 'app_name'], how='outer')
结果:
df_merged['app_name'].unique()
array(['music app','fitness app'], dtype=object)
有谁知道如何在不丢失任何应用数据的情况下从两个数据框中获取所有数据? 非常感谢您的帮助!
【问题讨论】:
-
merge函数中使用的列与输入样本不匹配。app_id和app_add是product_id吗? -
对此我很抱歉,我想了一件事,写了另一件事完全不同。现在所有的列都是
app_id
标签: python pandas dataframe merge