Python Pandas - 使用指示值合并 DataFrame

pythonserver side programmingprogramming更新于 2025/10/29 15:08:17

要合并 Pandas DataFrame,请使用 merge() 函数。在其中,您可以将参数 indicator 设置为 True 或 False。如果要检查哪个 DataFrame 具有特定记录,则使用 −

indicator= True

如上所示,使用上述参数为 True,向输出 DataFrame 添加一列,名为"_merge"。

首先,让我们使用别名导入 pandas 库 −

import pandas as pd

让我们创建 DataFrame1 −

dataFrame1 = pd.DataFrame(
    {
    "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
    "Units": [100, 150, 110, 80, 110, 90]
    }
)

创建 DataFrame2 −

dataFrame2 = pd.DataFrame(
    {
    "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
    "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
    
    }
)

现在,将 DataFrames 与指标值 True 合并 −

# 将 DataFrames 与指标值合并
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="left",indicator=True)

示例

以下是代码 −

import pandas as pd

# 创建 DataFrame1
dataFrame1 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
      "Units": [100, 150, 110, 80, 110, 90]
   }
)

print"DataFrame1 ...\n",dataFrame1

# 创建 DataFrame2
dataFrame2 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
      "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]

   }
)

print"\nDataFrame2 ...\n",dataFrame2

# 合并带有指示值的数据帧
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="left",indicator=True)
print"\nMerged dataframe...\n", mergedRes

输出

这将产生以下输出。此处,“_merge 中的 “both”” 显示值同时存在于两个数据帧中 −

DataFrame1 ...
       Car   Units
0      BMW    100
1    Lexus    150
2     Audi    110
3  Mustang     80
4  Bentley    110
5   Jaguar     90

DataFrame2 ...
        Car   Reg_Price
0       BMW       7000
1     Lexus       1500
2     Tesla       5000
3   Mustang       8000
4  Mercedes       9000
5    Jaguar       6000

Merged dataframe...
       Car   Units   Reg_Price    _merge
0      BMW    100      7000.0       both
1    Lexus    150      1500.0       both
2     Audi    110         NaN  left_only
3  Mustang     80      8000.0       both
4  Bentley    110         NaN  left_only
5   Jaguar     90      6000.0       both

相关文章


有用资源