合并数据集-不同大小,需要一个重复以基于python中的ID

时间:2019-03-06 16:28:43

标签: python pandas

我需要在熊猫中合并两个数据集。一个包含一堆发票的信息,另外两个包含供应商信息。我在下面提供了一个简化的示例。

基本上,我想将供应商数据与供应商ID上的发票数据结合起来,以便每个发票都具有来自供应商信息数据的供应商所在国家/地区。

我尝试以不同的方式(内部,左侧,外部)合并和连接,并且没有像我需要的那样基于重复的供应商ID进行重复。我在弄清楚如何重复观察时遇到麻烦。例如,公司A可能会出现在2张以上的发票中,因此我们需要在每张发票上填写国家/地区,但合并后只会在一张上填充。其余的将是NaN。有人可以帮忙吗?

数据示例:

/something/something/something

2 个答案:

答案 0 :(得分:1)

map与pd.Series一起使用:

invoices['Country'] = invoices['company id'].map(supplier.set_index('company id')['Country'])

invoices

输出:

   company id    company      USD  Invoice no Country
0          11  Company A   120000           1     USA
1          12  Company B    20000           2     USA
2          11  Company A  4000000           3     USA
3          11  Company A    99000           4     USA
4          13  Company C     8000           5     AUS
5          12  Company B   110000           6     USA
6          14  Company D   443000           7     MEX

详细信息,首先创建一个系列,将公司ID映射到国家/地区,公司ID在索引中,国家/地区作为pd.Series的值。 然后使用pd.Series.map将发票数据框中的公司ID的每个值都移到所定义的pd.Series提供的国家/地区。

答案 1 :(得分:0)

不确定您在哪里None,但是合并对我有用。

NaN
相关问题