【发布时间】:2018-10-19 22:49:02
【问题描述】:
我有一个一直在清理的数据集,为了清理它,我需要将其放入数据透视表中以汇总一些数据。我现在将它放回数据框,以便我可以将它与其他一些数据框合并。 df1 看起来像这样:
Count Region Period ACV PRJ
167 REMAINING US WEST 3/3/2018 5 57
168 REMAINING US WEST 3/31/2018 10 83
169 SAN FRANCISCO 1/13/2018 99 76
170 SAN FRANCISCO 1/20/2018 34 21
df2 看起来像这样:
Count MKTcode Region
11 RSMR0 REMAINING US SOUTH
12 RWMR0 REMAINING US WEST
13 SFR00 SAN FRANCISCO
我尝试将它们与以下代码合并:
df3 = pd.merge(df1, df2, on='Region', how='inner')
但由于某种原因,pandas 没有将 Region 列解释为相同的数据,并且合并正在 MKTcode 列中显示 NaN 数据,并且似乎将 df2 附加到 df1,如下所示:
Count Region Period ACV PRJ MKTcode
193 WASHINGTON, D.C. 3/3/2018 36 38 NaN
194 WASHINGTON, D.C. 3/31/2018 12 3 NaN
195 ATLANTA NaN NaN NaN ATMR0
196 BOSTON NaN NaN NaN B2MRN
我尝试过内连接和外连接,但真正的问题似乎是 pandas 将每个数据帧的 Region 列解释为不同的元素。 df2 中的 MKTcode 列和 Region 列只有 12 个观察值,每个观察值只出现一次,而 df1 在 Region 列中有多个重复实例(同一城市的倍数)。有没有一种方法可以让我创建一个我需要的 12 个 MKTcodes 的列表并在它与我指定的每个区域匹配的地方执行合并?像一对多匹配?
谢谢。
【问题讨论】:
标签: python string pandas dataframe merge