亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python利用pandas進(jìn)行數(shù)據(jù)合并詳解

 更新時(shí)間:2023年11月15日 08:46:45   作者:懸崖上的金魚  
當(dāng)使用Python中的pandas庫時(shí),merge函數(shù)是用于合并(或連接)兩個(gè)數(shù)據(jù)框(DataFrame)的重要工具。它類似于SQL中的JOIN操作,下面我們就來看看它的具體操作吧

當(dāng)使用Python中的pandas庫時(shí),merge函數(shù)是用于合并(或連接)兩個(gè)數(shù)據(jù)框(DataFrame)的重要工具。它類似于SQL中的JOIN操作,允許你根據(jù)一個(gè)或多個(gè)鍵(key)將兩個(gè)數(shù)據(jù)框連接起來。

merge函數(shù)的基本語法如下

pd.merge(
    left,  # 要合并的左側(cè) DataFrame
    right,  # 要合并的右側(cè) DataFrame
    how='inner',  # 連接方式,包括 'left', 'right', 'outer', 'inner',默認(rèn)為 'inner'
    on=None,  # 用于連接的列名,必須存在于左側(cè)和右側(cè) DataFrame 中
    left_on=None,  # 左側(cè) DataFrame 用于連接的列名
    right_on=None,  # 右側(cè) DataFrame 用于連接的列名
    left_index=False,  # 如果為 True,則使用左側(cè) DataFrame 的索引作為連接鍵
    right_index=False,  # 如果為 True,則使用右側(cè) DataFrame 的索引作為連接鍵
    suffixes=('_x', '_y'),  # 字符串后綴,用于重疊列名的處理
    sort=False,  # 根據(jù)連接鍵對合并后的數(shù)據(jù)進(jìn)行排序
    copy=True,  # 如果為 False,可以提高性能,但是在某些情況下會(huì)修改原始數(shù)據(jù)
)

下面詳細(xì)解釋每個(gè)參數(shù)的用法:

  • leftright:要連接的左右兩個(gè)數(shù)據(jù)框,可以是DataFrame對象、Series對象或者帶有相同列名的字典。
  • on:指定用于連接的列名,如果兩個(gè)數(shù)據(jù)框中的列名相同,可以直接指定為列名,如果列名不同,可以通過left_onright_on參數(shù)分別指定左右兩個(gè)數(shù)據(jù)框的列名。
  • how:指定連接的方式,默認(rèn)為'inner'??蛇x的取值有:
    • 'inner':內(nèi)連接,只返回兩個(gè)數(shù)據(jù)框中鍵匹配的行。
    • 'outer':外連接,返回兩個(gè)數(shù)據(jù)框中所有的行,并用NaN填充缺失的值。
    • 'left':左連接,返回左側(cè)數(shù)據(jù)框中所有的行,并用NaN填充右側(cè)數(shù)據(jù)框中缺失的值。
    • 'right':右連接,返回右側(cè)數(shù)據(jù)框中所有的行,并用NaN填充左側(cè)數(shù)據(jù)框中缺失的值。
  • left_onright_on:如果要連接的列名不同,可以使用這兩個(gè)參數(shù)分別指定左右兩個(gè)數(shù)據(jù)框中用于連接的列名。
  • left_indexright_index:如果要根據(jù)索引進(jìn)行連接,可以將這兩個(gè)參數(shù)設(shè)為True。
  • sort:指定是否按照鍵對數(shù)據(jù)進(jìn)行排序,默認(rèn)為True。
  • suffixes:如果兩個(gè)數(shù)據(jù)框中存在重復(fù)的列名,可以使用這個(gè)參數(shù)為它們添加后綴以區(qū)分,默認(rèn)為('_x', '_y')。
  • copy:指定是否復(fù)制數(shù)據(jù),默認(rèn)為True。如果設(shè)置為False,可以避免復(fù)制數(shù)據(jù)而提高性能。
  • indicator:指定是否在結(jié)果數(shù)據(jù)框中添加一個(gè)表示連接方式的特殊列,默認(rèn)為False。
  • validate:指定連接操作的有效性檢查方式,可選的取值有None、'one_to_one'、'one_to_many'、'many_to_one'和'many_to_many'。

基本用法

merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱'])   # 連接方式,包括 'left', 'right', 'outer', 'inner',默認(rèn)為 'inner'
print(merged_df)

指定不同的列名

merged_df = pd.merge(left_df, right_df, how='outer', left_on='店鋪名稱', right_on='店鋪名稱2')
print(merged_df)

處理重復(fù)列名,相同列名加后綴

merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱'], suffixes=('_left', '_right'))
print(merged_df)

根據(jù)索引進(jìn)行合并

merged_df = pd.merge(left_df, right_df, how='outer', left_index=True, right_index=True)
print(merged_df)

 開啟一列標(biāo)記列,標(biāo)記數(shù)據(jù)來源

merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱','訂單號(hào)'], indicator=True)
print(merged_df)

完整代碼

import pandas as pd

# 讀取兩個(gè) Excel 文件
left_df = pd.read_excel('C:\\Users\\liuchunlin2\\Desktop\\數(shù)據(jù)1.xlsx',sheet_name='Sheet2')
right_df = pd.read_excel('C:\\Users\\liuchunlin2\\Desktop\\數(shù)據(jù)2.xlsx',sheet_name='Sheet2')

#基本用法
merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱'])   # 連接方式,包括 'left', 'right', 'outer', 'inner',默認(rèn)為 'inner'
print(merged_df)

#指定不同的列名
merged_df = pd.merge(left_df, right_df, how='outer', left_on='店鋪名稱', right_on='店鋪名稱2')
print(merged_df)

#處理重復(fù)列名,相同列名加后綴
merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱'], suffixes=('_left', '_right'))
print(merged_df)

#根據(jù)索引進(jìn)行合并
merged_df = pd.merge(left_df, right_df, how='outer', left_index=True, right_index=True)
print(merged_df)

#開啟一列標(biāo)記列,標(biāo)記數(shù)據(jù)來源
merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱','訂單號(hào)'], indicator=True)
print(merged_df)

數(shù)據(jù)一:

數(shù)據(jù)二:

以上就是Python利用pandas進(jìn)行數(shù)據(jù)合并詳解的詳細(xì)內(nèi)容,更多關(guān)于Python pandas數(shù)據(jù)合并的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論