Pandas merge() 函数:如何保持原始数据的数量和顺序不变?
在使用 Pandas 的 merge() 函数合并数据时,可以通过设置参数来控制合并的方式,以保持原始数据的数量和顺序不变。具体而言,可以设置参数 how 为 'outer'、'inner'、'left' 或 'right',以控制合并方式。其中:
how='outer'时,合并后的数据包含所有原始数据,缺失值用 NaN 填充。how='inner'时,合并后的数据仅包含两个数据集共有的数据。how='left'时,合并后的数据包含左侧数据集的所有数据和右侧数据集中与左侧数据集匹配的数据。how='right'时,合并后的数据包含右侧数据集的所有数据和左侧数据集中与右侧数据集匹配的数据。
例如,假设有两个数据集 df1 和 df2,分别如下所示:
df1:
| id | name | age |
| -- | ----- | --- |
| 1 | Alice | 20 |
| 2 | Bob | 25 |
| 3 | Cindy | 30 |
df2:
| id | gender | city |
| -- | ------ | ---- |
| 1 | Female | LA |
| 2 | Male | NY |
| 4 | Male | SF |
如果我们想要按照 id 合并这两个数据集,并保持原始数据的数量和顺序不变,可以使用如下代码:
merged_df = pd.merge(df1, df2, on='id', how='outer')
合并后的数据集 merged_df 如下所示:
merged_df:
| id | name | age | gender | city |
| -- | ----- | --- | ------ | ---- |
| 1 | Alice | 20 | Female | LA |
| 2 | Bob | 25 | Male | NY |
| 3 | Cindy | 30 | NaN | NaN |
| 4 | NaN | NaN | Male | SF |
可以看到,合并后的数据集保持了原始数据的数量和顺序,并且缺失值用 NaN 填充。同时,没有在原始数据集中出现的 id=4 的数据在合并后的数据集中也被保留了下来。
原文地址: https://www.cveoy.top/t/topic/oi22 著作权归作者所有。请勿转载和采集!