我正在处理这样一个问题:
mydata_old
| x | y |
|-----|------|
| 1 | 10 |
| 2 | 15 |
| 3 | 12 |
| 4 | 21 |
mydata_new
| x | y |
|-----|------|
| 4 | 20 |
| 5 | 25 |
| 6 | 30 |
我想合并两个表以获得:
mydata
| x | y |
|-----|------|
| 1 | 10 |
| 2 | 15 |
| 3 | 12 |
| 4 | 20 | # x = 4 does not show up twice
| 5 | 25 |
| 6 | 30 |
我尝试使用pandas.merge
,但无法获得所需的结果。
mydata = pd.merge(mydata_new, mydata_old, how="left")
1条答案
按热度按时间0yycz8jy1#
实现这一点的一种方法是使用外部连接(即,保留两个 Dataframe 的索引)。您可以使用
pd.merge(mydata_new, mydata_old, how='outer')
来实现这一点,然后保持最新数据可用。但是,使用
pandas.concat
可以更直接。在这里,我连接了两个 Dataframe 。注意,如果
x
出现在mydata_new
中,我将排除mydata_old
中的行。这样,当最新的数据在两个 Dataframe (旧的和新的)中都可用时,您可以保留它。这将打印以下内容:
| X射线|Y形|
| - -|- -|
| 一个|10个|
| 2个|十五|
| 三个|十二|
| 四个|二十个|
| 五个|二十五个|
| 六个|三十|