最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pandas數(shù)據(jù)合并的兩種實現(xiàn)方法

 更新時間:2023年11月26日 10:42:24   作者:GarsonW  
本文主要介紹了Pandas數(shù)據(jù)合并的兩種實現(xiàn)方法,DataFrame數(shù)據(jù)合并主要使用merge()方法和concat()方法,具有一定的參考價值,感興趣的可以了解一下

DataFrame數(shù)據(jù)合并主要使用merge()方法和concat()方法。

1.數(shù)據(jù)合并(merge()方法)

Pandas模塊的merge()進行數(shù)據(jù)合并時,兩個DataFrame對象必須有相同的列。

1.常規(guī)合并

import pandas as pd

df1 = pd.DataFrame({'編號':['mr001','mr002','mr003'],
                    '語文':[110,105,109],
                    '數(shù)學':[105,88,120],
                    '英語':[99,115,130]})

df2 = pd.DataFrame({'編號':['mr001','mr002','mr003'],
                    '體育':[34.5,39.7,38]})

df_merge=pd.merge(df1,df2,on='編號')
print(df_merge)

該示例中,編號是相同的,所以會將df2中“體育”作為新的一列加入到df1中。 

2.通過索引合并

import pandas as pd

df1 = pd.DataFrame({'編號':['mr001','mr002','mr003'],
                    '語文':[110,105,109],
                    '數(shù)學':[105,88,120],
                    '英語':[99,115,130]})

df2 = pd.DataFrame({'編號':['mr001','mr002','mr003'],
                    '體育':[34.5,39.7,38]})

df_merge=pd.merge(df1,df2,left_index=True,right_index=True)
print(df_merge)

3.對合并數(shù)據(jù)去重

使用到how屬性,就是讓df1保留所有的行列數(shù)據(jù),df2則根據(jù)df1的行列進行補全。

import pandas as pd

df1 = pd.DataFrame({'編號':['mr001','mr002','mr003'],
                    '語文':[110,105,109],
                    '數(shù)學':[105,88,120],
                    '英語':[99,115,130]})

df2 = pd.DataFrame({'編號':['mr001','mr002','mr003'],
                    '體育':[34.5,39.7,38]})

df_merge=pd.merge(df1,df2,on='編號',left_index=True,right_index=True)
print(df_merge)
df_merge=pd.merge(df1,df2,on='編號',how='left')
print(df_merge)

4.多對一的數(shù)據(jù)合并

根據(jù)共有列中的數(shù)據(jù)進行合并,df2根據(jù)df1的行列進行補全。

import pandas as pd

df1 = pd.DataFrame({'編號':['mr001','mr002','mr003'],
                    '學生姓名':['明日同學','高猿員','錢多多']})

df2 = pd.DataFrame({'編號':['mr001','mr001','mr003'],
                    '語文':[110,105,109],
                    '數(shù)學':[105,88,120],
                    '英語':[99,115,130],
                    '時間':['1月','2月','1月']})

df_merge=pd.merge(df1,df2,on='編號')
print(df_merge)

5.多對多的數(shù)據(jù)合并

根據(jù)共有列中的數(shù)據(jù)進行合并,df2,df1相互補全。

import pandas as pd

df1 = pd.DataFrame({'編號':['mr001','mr002','mr003','mr001','mr001'],
                    '體育':[34.5,39.7,38,33,35]})

df2 = pd.DataFrame({'編號':['mr001','mr002','mr003','mr003','mr003'],
                    '語文':[110,105,109,110,108],
                    '數(shù)學':[105,88,120,123,119],
                    '英語':[99,115,130,109,128]})

df_merge=pd.merge(df1,df2)
print(df_merge)

2.數(shù)據(jù)合并(concat()方法)

1.相同字段的表首尾相連

dfs = [df1,df2,df3]
result = pd.concat(dfs)

如果需要標記源數(shù)據(jù)來自于哪張表,可以使用:

result = pd.concat(dfs, keys=['第一張表','第二張表','第三張表']) 

2.橫向表合并(行對齊)

用于數(shù)據(jù)列名不一致,缺失的數(shù)據(jù)使用Nan填充 。其中axis=1代表行合并。

result = pd.concat([df1,df4],axis=1)

3.交叉合并

交叉合并需要加上join參數(shù),如值為inner,結(jié)果為兩張表的交集;如果值為outer,結(jié)果為兩張表的并集。 

result = pd.concat([df1,df4],axis=1,join='inner')

4.指定表對其數(shù)據(jù)(行對齊)

如果指定參數(shù)join_axes,就可以指定根據(jù)哪張表來對齊數(shù)據(jù)。如下述代碼,根據(jù)df4表對其,結(jié)果表的行術(shù)和df4的行術(shù)一致,在此基礎(chǔ)上拼接df1表。

result = pd.concat([df1,df4],axis=1,join_axes[df4.index])

到此這篇關(guān)于Pandas數(shù)據(jù)合并的兩種實現(xiàn)方法的文章就介紹到這了,更多相關(guān)Pandas數(shù)據(jù)合并內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

中西区| 会东县| 息烽县| 聊城市| 蓝山县| 独山县| 石台县| 敦化市| 类乌齐县| 辽中县| 马关县| 杭州市| 中方县| 屏南县| 武邑县| 秦安县| 嘉义县| 旬阳县| 夏河县| 阳泉市| 永和县| 泗洪县| 邯郸市| 东莞市| 昆明市| 安陆市| 宁陵县| 来凤县| 奈曼旗| 贵定县| 景泰县| 嘉峪关市| 河北省| 醴陵市| 沙洋县| 泾川县| 正阳县| 北宁市| 天水市| 米泉市| 昌吉市|