python - 根据某些条件合并两个不同大小的数据帧
问题描述
已解决(请参阅下面 Unbridledscum 的评论)
我目前正在尝试将两个数据框的信息连接在一起。
我的初始数据框包含产品 ID (SKU_id) 以及产品名称,如下所示:
(请原谅 SKU_id 的截断)
df
Out[127]:
SKU_id Product Name
0 7.336012e+09 OLD STYLE BEER
1 1.820001e+09 BUDWEISER BEER LONG
2 1.820000e+09 BUDWEISER BEER
3 3.410018e+09 MILLER GENUINE DRAFT
4 3.410018e+09 MILLER GENUINE DRAFT
5 8.066096e+09 CORONA EXTRA BEER NR
我的其他数据框包含所有其他产品信息,例如单位销售额等(以及 SKU_id)。
data.head()
Out[159]:
Store_id SKU_id WEEK Units_Sold QTY PRICE Promotion
20462 5 1820000016 166 1 1 3.79 NaN
20463 5 1820000016 167 3 1 3.79 NaN
20464 5 1820000016 168 6 1 3.79 NaN
20465 5 1820000016 169 2 1 3.79 NaN
20466 5 1820000016 170 1 1 3.79 NaN
我现在想加入这两个数据框。更具体地说,我想添加特定 SKU_id 的名称,该名称存在于第一个数据帧 (df) 而不是第二个数据帧 (data) 中。
两个数据帧都包含特定的 SKU_id。我想找到一种方法来查看第二个数据帧(数据)中的 SKU_id 是什么,然后从第一个数据帧(df)中添加相应的名称
我正在寻找的输出是这样的:
Store_id SKU_id WEEK Units_Sold QTY PRICE Promotion Product Name
20462 5 1820000016 166 1 1 3.79 NaN BUDWEISER BEER LONG
20463 5 1820000016 167 3 1 3.79 NaN BUDWEISER BEER LONG
20464 5 1820000016 168 6 1 3.79 NaN BUDWEISER BEER LONG
20465 5 1820000016 169 2 1 3.79 NaN BUDWEISER BEER LONG
20466 5 1820000016 170 1 1 3.79 NaN BUDWEISER BEER LONG
问题是两个数据框的大小不同,我不知道如何编写代码来查看 SKU_id 并添加相应的名称。有什么建议么?提前致谢
解决方案
这是一个示例,其中df1
您的问题中的数据框df2
是您提供的第二个
for i,val in enumerate(df2['SKU_id']):
df2.loc[i,"Product"]=df1.loc[df['SKU_id'] ==val, 'Product Name'].iloc[0]
df2.head()
Dataframe1
我用作示例:
SKU_id Product Name
0 7336012000 OLD STYLE BEER
1 1820000016 BUDWEISER BEER LONG
Dataframe2
我用作示例:
Store_id SKU_id
0 5 1820000016
1 5 1820000016
2 5 7336012000
这会给你类似的东西:
Store_id SKU_id Product
0 5 1820000016 BUDWEISER BEER LONG
1 5 1820000016 BUDWEISER BEER LONG
2 5 7336012000 OLD STYLE BEER
推荐阅读
- html - HTML div 不会转到父 div 的底部
- mongodb - Kubernetes - Prometheus - 如果 Pod 已经被 prometheus 发现,是否真的需要导出器?
- python - 如何处理对象实例之间或模块之间的通信?
- python - 使用 python 从 Hive 下载区块链数据
- java - 用 IOException 包装非 IOExceptions
- reactjs - 在 RN 应用程序的手机中制作单独的应用程序文件夹
- python - Flask-WTF 实例化嵌套表单
- c++ - 如何在 C++ 中使用 Maya-MEL 命令“选择”
- python - kivy 模块安装失败,如何解决?
- visual-studio-code - 有没有办法在 VS Code 中禁用“剪辑”?