日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

pandas中合并数据集

發(fā)布時(shí)間:2024/9/27 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pandas中合并数据集 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)集的合并🔍

1、pandas.merge()

對(duì)于數(shù)據(jù)庫(kù)風(fēng)格的DataFrame進(jìn)行聯(lián)合

  • 語(yǔ)法👇:

pandas.merge(left, right, how=‘inner’, on=None)

left:參與合并的左側(cè)DataFrame。
right:參與合并的右側(cè)DataFrame。
how:指DataFrame的連接方式。默認(rèn)為inner,inner是使用兩個(gè)表都有的鍵(多對(duì)多連接 是行的笛卡爾積)——這里可以理解為:比如2對(duì)2,首先左邊的1對(duì)完右邊的1和2之后,在左邊的2對(duì)右邊的1和2,因此結(jié)果中排列組合實(shí)際就是3*2個(gè)結(jié)果;left使用左表中所有的鍵;right使用右表中所有的鍵;outer使用 兩個(gè)表中所有 的鍵。
on:用于連接的列名,必須同時(shí)存在于左右兩個(gè)DataFrame對(duì)象中。如果未指定,則以left和right列名的交集作為連接鍵。
left_on:左側(cè)DataFrame中用作連接鍵的列。
right_on:右側(cè)DataFrame中用作連接鍵的列。
left_index:將左側(cè)的行索引用作其連接鍵。
right_index:將右側(cè)的行索引用作其連接鍵。
sort:根據(jù)連接件對(duì)合并后的數(shù)據(jù)進(jìn)行排序,默認(rèn)為True。(有時(shí)在處理大數(shù)據(jù)集時(shí),禁用該選項(xiàng)可獲得更好的性能)
suffixes:在重疊情況下,添加到列名后的字符串元組;默認(rèn)是(’_x’,’_y’)(例如如果待合并的DataFrame中都含有‘data’列,那么結(jié)果中會(huì)出現(xiàn)’data_x’,‘data_y’)。
copy:如果為False,則在某些特殊情況下避免將數(shù)據(jù)復(fù)制到結(jié)果數(shù)據(jù)中;默認(rèn)情況下總是復(fù)制。
indicator:添加一個(gè)特殊的列_merge,指示每一行的來(lái)源;值將根據(jù)每行中連接數(shù)據(jù)的來(lái)源分別為’left_only’,‘right_only’或’both’。

  • 例子🌰
>>>df1=pd.DataFrame({'key':['b','b','a','c','a','b'],'data1':range(6)}) >>>df2=pd.DataFrame({'key':['a','b','a','b','d'],'data2':range(5)}) >>>df1key data1 0 b 0 1 b 1 2 a 2 3 c 3 4 a 4 5 b 5 >>>df2key data2 0 a 0 1 b 1 2 a 2 3 b 3 4 d 4 >>>pd.merge(df1,df2,on='key',how='left')key data1 data2 0 b 0 1.0 1 b 0 3.0 2 b 1 1.0 3 b 1 3.0 4 a 2 0.0 5 a 2 2.0 6 c 3 NaN 7 a 4 0.0 8 a 4 2.0 9 b 5 1.0 10 b 5 3.0 >>>pd.merge(df1,df2,how='inner')key data1 data2 0 b 0 1 1 b 0 3 2 b 1 1 3 b 1 3 4 b 5 1 5 b 5 3 6 a 2 0 7 a 2 2 8 a 4 0 9 a 4 2

2、join方法

用于按照索引合并

  • 這個(gè)函數(shù)比較簡(jiǎn)單,直接舉例🌰
>>>left2=pd.DataFrame([[1.,2.],[3.,4.],[5.,6.]],index=['a','c','e'],columns=['Ohio','Nevada']) >>>right2=pd.DataFrame([[7.,8.],[9.,10.],[11.,12.],[13.,14.]],index=['b','c','d','e'],columns=['Missouri','Alabama']) >>>left2Ohio Nevada a 1.0 2.0 c 3.0 4.0 e 5.0 6.0 >>>right2 Missouri Alabama b 7.0 8.0 c 9.0 10.0 d 11.0 12.0 e 13.0 14.0 >>>left2.join(right2,how='outer')Ohio Nevada Missouri Alabama a 1.0 2.0 NaN NaN b NaN NaN 7.0 8.0 c 3.0 4.0 9.0 10.0 d NaN NaN 11.0 12.0 e 5.0 6.0 13.0 14.0 >>>another=pd.DataFrame([[7.,8.],[9.,10.],[11.,12.],[16.,17.]],index=['a','c','e','f'],columns=['New York','Oregon']) >>>anotherNew York Oregon a 7.0 8.0 c 9.0 10.0 e 11.0 12.0 f 16.0 17.0 >>>left2.join([right2,another])Ohio Nevada Missouri Alabama New York Oregon a 1.0 2.0 NaN NaN 7.0 8.0 c 3.0 4.0 9.0 10.0 9.0 10.0 e 5.0 6.0 13.0 14.0 11.0 12.0 '''由于一些歷史原因(pandas版本過(guò)低),DataFrame的join方法進(jìn)行連接鍵上的左連接,完全保留左邊DataFrame的行索引。 它還支持在調(diào)用DataFrame的某一列上連接傳遞的DataFrame的索引:''' >>>left1=pd.DataFrame({'key':['a','b','a','a','b','c'],'value':range(6)}) >>>right1=pd.DataFrame({'group_val':[3.5,7]},index=['a','b']) >>>left1key value 0 a 0 1 b 1 2 a 2 3 a 3 4 b 4 5 c 5

3、 對(duì)于 NumPy數(shù)組的拼接或綁定, numpy.concatenate() 方法可以實(shí)現(xiàn)。

  • 例子🌰
>>>arr=np.arange(12).reshape((3,4)) >>>arr array([[ 0, 1, 2, 3],[ 4, 5, 6, 7],[ 8, 9, 10, 11]]) >>>np.concatenate([arr,arr],axis=1) array([[ 0, 1, 2, 3, 0, 1, 2, 3],[ 4, 5, 6, 7, 4, 5, 6, 7],[ 8, 9, 10, 11, 8, 9, 10, 11]])

4、pandas.concat()

  • 語(yǔ)法👇:

pandas.concat(objs,axis=0, join=‘outer’, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)

objs: 參與連接的pandas對(duì)象的列表或字典。唯一必需的參數(shù)。
axis: 指明連接的軸向(0為"index",1為"columns"),默認(rèn)為0.
join: “inner"或"outer”,默認(rèn)為"outer"。指明其他軸向上的索引是按交集(inner)還是并集(outer)進(jìn)行合并。
keys: 與連接對(duì)象有關(guān)的值,用于形成連接軸向上的層次化索引。可以是任意值的列表或數(shù)組、元組數(shù)組、數(shù)組列表(如果將levels設(shè)置成多級(jí)數(shù)組的話)
levels: 指定用作層次化索引各級(jí)別上的索引 好累明天繼續(xù)寫吧

總結(jié)

以上是生活随笔為你收集整理的pandas中合并数据集的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。