我有两个表,它们都包含一个称为帐户代码的标识符,但第一个表可以包含该帐户代码的多次出现,而另一个表只出现一次。我的表格最初来自 excel,因此将它们放入 Pandas 数据框后看起来像这样
基础数据
+-------+----------------+----------+
| Name | Account Number | $ Amount |
+-------+----------------+----------+
| Brett | 1234 | a |
| Brett | 1234 | b |
| Jill | 2458 | c |
| Peter | 1485 | d |
+-------+----------------+----------+
licensee_fee
+----------------+--------------+
| Account Number | Licensee Fee |
+----------------+--------------+
| 1234 | x |
| 1485 | y |
+----------------+--------------+
所以当我做
base_data = pd.read_excel(filename, sheet_name=0, dytpe={"Account Number": "str"})
licensee_fee = pd.read_excel(filename, sheet_name=1, dtype={"Account Number": "str"})
# the first 2 columns contain irrelevant data
result = pd.merge(base_date, licensee_fee.iloc[:,[2,3]], how="outer", on="Account Number")
正如预期的那样我得到
+-------+----------------+----------+--------------+
| Name | Account Number | $ Amount | Licensee Fee |
+-------+----------------+----------+--------------+
| Brett | 1234 | a | x |
| Brett | 1234 | b | x |
| Jill | 2458 | c | - |
| Peter | 1485 | d | y |
+-------+----------------+----------+--------------+
但这在我需要的方面是不正确的。我真正想要的是它看起来像这样
+-------+----------------+----------+--------------+
| Name | Account Number | $ Amount | Licensee Fee |
+-------+----------------+----------+--------------+
| Brett | 1234 | a | x |
| Brett | 1234 | b | - |
| Jill | 2458 | c | - |
| Peter | 1485 | d | y |
+-------+----------------+----------+--------------+
被许可人费用只出现一次。
我有一些代码来处理 NULL 值,所以这不是问题。
呼如林
慕的地10843
相关分类