日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

pandas合并操作

作者:Begin to change 更新時間: 2022-07-21 編程語言

pandas合并操作

在實際工作中,我們的數據經常存儲在多個文件中,這時候就需要挨個讀取出來,然后合并成一個DataFrame對象。在pandas中,可以通過pd.concatpd.merge來實現合并的功能。

pd.concat:

pd.concat(datas, axis=1),按照行或者列合并多個數據,axis=0為列索引,axis=1為行索引。比如我們以二手車數據為例,合并廣州和北京的二手車數據。示例代碼如下:

df_gz = pd.read_csv("data/guazi_gz.csv")
df_bj = pd.read_csv("data/guazi_bj.csv")

df = pd.concat([df_gz, df_bj])

其中df_gzdf_bj的列名都是一樣的,上述代碼是將多行合并在一起。

如果要將不同列的數據合并在一起,那么則根據行索引名稱進行拼接。

pd.merge:

pd.merge(left, right, how="inner", on=None, left_on=None, right_one=None)類似于SQL語句中的連接。都是指定按照共同鍵值對合并或者左右內連接。參數意義如下:

  • leftright:兩個需要合并的DataFrame對象。

  • how
    

    :指定合并的方式。有以下可選參數。

    Merge Method SQL Join Name 描述
    left LEFT OUTER JOIN 只使用左邊的DataFrame的key作為連接字段
    right RIGHT OUTER JOIN 只使用右邊的DataFrame的key作為連接字段
    outer FULL OUTER JOIN 使用左邊和右邊的key值的并集連接
    inner INNER JOIN 使用左邊和右邊的key值的交集連接
  • on:按照哪個字段進行合并,指定的鍵必須在兩個DataFrame中都存在。

  • left_on:左連接的字段。

  • right_on:右連接的字段。

pd.merge合并:

  1. 使用left_onright_on參數合并:
df1 = pd.DataFrame({'lkey': ['foo', 'bar', 'baz', 'foo'],
                    'value': [1, 2, 3, 5]})
                    
df2 = pd.DataFrame({'rkey': ['foo', 'bar', 'baz', 'foo'],
                    'value': [5, 6, 7, 8]})
                    
print(df1)
print(df2)

輸出結果如下:

        lkey	value
0	foo	1
1	bar	2
2	baz	3
3	foo	5

	rkey	value
0	foo	5
1	bar	6
2	baz	7
3	foo	8

執行merge操作代碼如下:

pd.merge(df1, df2, left_on="lkey", right_on="rkey")

輸出結果為:

        lkey	value_x	rkey	value_y
0	foo	1	foo	5
1	foo	1	foo	8
2	foo	5	foo	5
3	foo	5	foo	8
4	bar	2	bar	6
5	baz	3	baz	7
  1. 使用on參數合并:
    案例對象如下:
left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
                        'key2': ['K0', 'K1', 'K0', 'K1'],
                        'A': ['A0', 'A1', 'A2', 'A3'],
                        'B': ['B0', 'B1', 'B2', 'B3']})

right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
                        'key2': ['K0', 'K0', 'K0', 'K0'],
                        'C': ['C0', 'C1', 'C2', 'C3'],
                        'D': ['D0', 'D1', 'D2', 'D3']})

內連接:

result = pd.merge(left, right, on=['key1', 'key2'])

內連接.png

左連接:

result = pd.merge(left, right, how='left', on=['key1', 'key2'])

左連接.png

右連接:

result = pd.merge(left, right, how='right', on=['key1', 'key2'])

右連接.png

外連接:

result = pd.merge(left, right, how='outer', on=['key1', 'key2'])

外鏈接.png

原文鏈接:https://blog.csdn.net/qq_41404557/article/details/125899054

欄目分類
最近更新