【发布时间】:2017-09-15 22:16:57
【问题描述】:
我遇到了许多人都遇到过的数据问题。我目前有一个包含交易信息的数据集。根据 Transaction_Number,我会发现参与交易的每个人花费了多长时间。
最终的输出是这样的
Transaction_Number Created On Created_By Time_Diff
27327920232 2014-12-08 03:29:08 jake NaN
27323232336 2017-04-28 18:39:03 James 0
27323232336 2017-04-28 18:26:23 Tony 760.0
现在我面临的问题是我缺少一列。我通过从数据库中查询并提取了一个名为“Product_Number”的字段来解决这个问题。我正在加入 Transaction_Number 上的两个表。这是问题出现的地方,第二个数据框名称 D 的 Transaction_Number 仅列出一次与 Product_Number 匹配。主数据框有多次出现的事务。因此,当我运行以下代码时,我的结果没有意义。基于 12K+ 的可能性仅输出 4 个匹配项。
X D D
Transaction_Number Transaction_Number Product_Number
27327920232 27327920232 Cw-xs-re-89
27327920232 72732332323 pw-ts-sf-89
27327920232 32338033383 Cw-ns-tn-86
results = pd.merge(X, D, how='inner', on= "Transaction_Number")
我该怎么做才能找到正确的匹配项。我也尝试过左连接,任何类型的提示都会有所帮助。 - 谢谢
【问题讨论】:
-
你刚才不是问了同样的问题吗?为什么第一个交易号前面有破折号?
-
怎样才能找到正确的匹配项?只有您可以告诉我们这一点,因为
merge正在按需要工作。从多个 Transactions 中提取哪个 Product_Number?第一的?最后一个?
标签: python database pandas join data-munging