python - 熊猫合并仅返回空值
问题描述
我正在尝试使用 Pandas 将产品包装信息与给定产品的每个订单记录合并。数据框信息如下。
BreakerOrders.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 3774010 entries, 0 to 3774009
Data columns (total 2 columns):
Material object
Quantity float64
dtypes: float64(1), object(1)
memory usage: 86.4+ MB
manh.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1381 entries, 0 to 1380
Data columns (total 4 columns):
Material 1381 non-null object
SUBPACK_QTY 202 non-null float64
PACK_QTY 591 non-null float64
PALLET_QTY 809 non-null float64
dtypes: float64(3), object(1)
memory usage: 43.2+ KB
使用下面的代码尝试合并时,我得到下表,其中包含包装数量的所有 NaN 值。
BreakerOrders.merge(manh,how='left',on='Material')
Material Quantity SUBPACK_QTY PACK_QTY PALLET_QTY
HOM230CP 5.0 NaN NaN NaN
QO115 20.0 NaN NaN NaN
QO2020CP 20.0 NaN NaN NaN
QO220CP 50.0 NaN NaN NaN
HOM115CP 50.0 NaN NaN NaN
HOM120 100.0 NaN NaN NaN
解决方案
我也有同样的情况,我可以通过翻转 DF 来解决它。所以而不是:
df2 = df.merge(df1)
尝试
df2 = df1.merge(df)
看起来很傻,但它解决了我的问题。
推荐阅读
- css - 如何级联变量 rgba alpha 值(在命名颜色变量中)
- python - SSL 传输上的 Asyncio 致命错误 - IndexError Deque Index Out Of Range
- android - Android:解密过程需要很多时间
- javascript - 反应路由器只显示主路由
- web - 是否可以从远程服务器访问路由器管理设置?
- c++ - 使用不同参数连续调用函数时无法得到不同的卷积结果
- sql-server - 如果已计算,如何更新表并忽略计算列,但如果未计算则更新它
- angular - Ionic-Angular 从 API --undefined 和 console.log 顺序获取数据
- sql - 使用 dblink 和 concat 转义创建函数
- android - 清单文件中的包名称和 Gradle 中的应用程序 ID 有什么区别