我需要在熊猫中合并两个数据集。一个包含一堆发票的信息,另外两个包含供应商信息。我在下面提供了一个简化的示例。
基本上,我想将供应商数据与供应商ID上的发票数据结合起来,以便每个发票都具有来自供应商信息数据的供应商所在国家/地区。
我尝试以不同的方式(内部,左侧,外部)合并和连接,并且没有像我需要的那样基于重复的供应商ID进行重复。我在弄清楚如何重复观察时遇到麻烦。例如,公司A可能会出现在2张以上的发票中,因此我们需要在每张发票上填写国家/地区,但合并后只会在一张上填充。其余的将是NaN。有人可以帮忙吗?
数据示例:
/something/something/something
答案 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