中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python?Dataframe合并與去重的方法

發布時間:2022-08-09 17:18:35 來源:億速云 閱讀:1400 作者:iii 欄目:開發技術

這篇文章主要講解了“python Dataframe合并與去重的方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“python Dataframe合并與去重的方法”吧!

    1.合并

    1.1 結構合并

    將兩個結構相同的數據合并

    1.1.1 concat函數

    函數配置:

    concat([dataFrame1, dataFrame2,…], index_ingore=False)

    參數說明:index_ingore=False(表示合并的索引不延續),index_ingore=True(表示合并的索引可延續)

    實例:

    import pandas as pd
    import numpy as np
    
    # 創建一個十行兩列的二維數據
    df = pd.DataFrame(np.random.randint(0, 10, (3, 2)), columns=['A', 'B'])
    
    # 將數據拆分成兩份,并保存在列表中
    data_list = [df[0:2], df[3:]]
    
    # 索引值不延續 
    df1 = pd.concat(data_list, ignore_index=False)
    
    # 索引值延續
    df2 = pd.concat(data_list, ignore_index=True)

    返回結果:

    ----------------df--------------------------
       A  B
    0  7  8
    1  7  3
    2  5  9
    3  4  0
    4  1  8
    ----------------df1--------------------------
       A  B
    0  7  8
    1  7  3
    3  4  0# -------------->這里并沒有2出現,索引不連續
    4  1  8
    ----------------df2--------------------------
       A  B
    0  7  8
    1  7  3
    2  4  0
    3  1  8

    1.1.2 append函數

    函數配置:

    df.append(df1, index_ignore=True)

    參數說明:index_ingore=False(表示索引不延續),index_ingore=True(表示索引延續)

    實例:

    import pandas as pd
    import numpy as np
    
    # 創建一個五行兩列的二維數組
    df = pd.DataFrame(np.random.randint(0, 10, (5, 2)), columns=['A', 'B'])
    
    # 創建要追加的數據
    narry = np.random.randint(0, 10, (3, 2))
    data_list = pd.DataFrame(narry, columns=['A', 'B'])
    
    # 合并數據
    df1 = df.append(data_list, ignore_index=True)

    返回結果:

    ----------------df--------------------------
       A  B
    0  5  6
    1  1  2
    2  5  3
    3  1  8
    4  1  2
    ----------------df1--------------------------
       A  B
    0  5  6
    1  1  2
    2  5  3
    3  1  8
    4  1  2
    5  8  1
    6  3  5
    7  1  1

    1.2 字段合并

    將同一個數據不同列合并

    參數配置:

    pd.merge( left, right, how="inner", on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=("_x", "_y"), copy=True, indicator=False, validate=None, )

    參數說明:

    參數說明
    how連接方式:inner、left、right、outer,默認為 inner
    on用于連接的列名
    left_on左表用于連接的列名
    right_on右表用于連接的列名
    Left_index是否使用左表的行索引作為連接鍵,默認為False
    Right_index是否使用右表的行索引作為連接鍵,默認為False
    sort默認為False,將合并的數據進行排序
    copy默認為True。總是將數據復制到數據結構中,設置為False可以提高性能
    suffixes存在相同列名時在列名后面添加的后綴,默認為(’_x’, ‘_y’)
    indicator顯示合并數據中數據來自哪個表

    實例1:

    import pandas as pd
     
    df1 = pd.DataFrame({'key':['a','b','c'], 'data1':range(3)})
    df2 = pd.DataFrame({'key':['a','b','c'], 'data2':range(3)})
    df = pd.merge(df1, df2) # 合并時默認以重復列并作為合并依據

    結果展示:

    ----------------df1--------------------------
      key  data1
    0   a      0
    1   b      1
    2   c      2
    ----------------df2--------------------------
      key  data2
    0   a      0
    1   b      1
    2   c      2
    ----------------df---------------------------
      key  data1  data2
    0   a      0      0
    1   b      1      1
    2   c      2      2

    實例2:

    # 多鍵連接時將連接鍵組成列表傳入
     
    right=DataFrame({'key1':['foo','foo','bar','bar'],  
             'key2':['one','one','one','two'],  
             'lval':[4,5,6,7]})  
     
    left=DataFrame({'key1':['foo','foo','bar'],  
             'key2':['one','two','one'],  
             'lval':[1,2,3]})  
      
    pd.merge(left,right,on=['key1','key2'],how='outer')

    結果展示:

    ----------------right-------------------------
      key1 key2  lval
    0  foo  one     4
    1  foo  one     5
    2  bar  one     6
    3  bar  two     7
    ----------------left--------------------------
      key1 key2  lval
    0  foo  one     1
    1  foo  two     2
    2  bar  one     3
    ----------------df---------------------------
      key1 key2  lval_x  lval_y
    0  foo  one     1.0     4.0
    1  foo  one     1.0     5.0
    2  foo  two     2.0     NaN
    3  bar  one     3.0     6.0
    4  bar  two     NaN     7.0
     

    2.去重

    參數配置:

    data.drop_duplicates(subset=['A','B'],keep='first',inplace=True)

    參數說明:

    參數說明
    subset列名,可選,默認為None
    keep{‘first’, ‘last’, False}, 默認值 ‘first’
    first保留第一次出現的重復行,刪除后面的重復行
    last刪除重復項,除了最后一次出現
    False刪除所有重復項
    inplace布爾值,默認為False,是否直接在原數據上刪除重復項或刪除重復項后返回副本。(inplace=True表示直接在原來的DataFrame上刪除重復項,而默認值False表示生成一個副本。)

    實例:

    去除完全重復的行數據

    data.drop_duplicates(inplace=True)

    df = pd.DataFrame({
        'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
        'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
        'rating': [4, 4, 3.5, 15, 5]
    })
    
    df.drop_duplicates()

    結果展示:

    ---------------去重前的df---------------------------
    brand style rating
    0 Yum Yum cup 4.0
    1 Yum Yum cup 4.0
    2 Indomie cup 3.5
    3 Indomie pack 15.0
    4 Indomie pack 5.0
    ---------------去重后的df---------------------------
    brand style rating
    0 Yum Yum cup 4.0
    2 Indomie cup 3.5
    3 Indomie pack 15.0
    4 Indomie pack 5.0

    使用subset 去除某幾列重復的行數據

    data.drop_duplicates(subset=[‘A’,‘B’],keep=‘first’,inplace=True)

    df.drop_duplicates(subset=['brand'])

    結果展示:

    brand style rating
    0 Yum Yum cup 4.0
    2 Indomie cup 3.5

    使用 keep刪除重復項并保留最后一次出現

    df.drop_duplicates(subset=['brand', 'style'], keep='last')

    結果展示:

    brand style rating
    1 Yum Yum cup 4.0
    2 Indomie cup 3.5
    4 Indomie pack 5.0

    感謝各位的閱讀,以上就是“python Dataframe合并與去重的方法”的內容了,經過本文的學習后,相信大家對python Dataframe合并與去重的方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    元朗区| 南华县| 中阳县| 汉源县| 怀安县| 亚东县| 盐边县| 菏泽市| 交口县| 民乐县| 海林市| 托克逊县| 赤城县| 镇坪县| 西华县| 陇西县| 桐庐县| 镇原县| 洛隆县| 泾源县| 中超| 土默特左旗| 临泽县| 南投县| 咸阳市| 会泽县| 双峰县| 江北区| 新津县| 长丰县| 泰来县| 哈巴河县| 阿坝县| 南雄市| 泽州县| 西盟| 项城市| 文化| 石首市| 调兵山市| 万盛区|