Python Pandas - 使用指示符值合并 DataFrame


要合并 Pandas DataFrame,使用 **merge**() 函数。在其中,你可以将参数 **indicator** 设置为 **True** 或 **False**。如果你想检查哪个 DataFrame 中有特定记录,然后使用 -

indicator= True

如上所示,使用 above 参数为 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]

   }
)

现在,使用 indicator 值 True 合并 DataFrames -

# merge DataFrames with indicator value
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="left",indicator=True)

案例

以下为代码 -

import pandas as pd

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

print"DataFrame1 ...\n",dataFrame1

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

   }
)

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

# merge DataFrames with indicator value
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="left",indicator=True)
print"\nMerged dataframe...\n", mergedRes

输出

这将生成以下输出。在这里,“_merge 中的 “both””表示这两个值都在这两个 DataFrames 中 -

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

更新日期: 2021-09-15

5,000+ 浏览量

开启您的职业生涯

完成课程获得认证

开始
广告