1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

python中DataFrame数据合并merge()和concat()方法详解

介绍Python中的DataFrame数据、合并merge()和concat()

我是本际云服务器推荐网的小编小本本,今天给大家介绍关于Python的DataFrame数据、合并merge()和concat()这些内容。

python中DataFrame数据合并merge()和concat()方法详解

merge()

1.常规合并

①方法1:指定一个参照列,以该列为准,合并其他列。

import pandas as pd
df1=pd.DataFrame({'id':['001','002','003'],
                  'num1':[120,101,104],
                  'num2':[110,102,121],
                  'num3':[105,120,113]})
df2=pd.DataFrame({'id':['001','002','003'],
                  'num4':[80,86,79]})
print(df1)
print("=======================================")
print(df2)
print("=======================================")
df_merge=pd.merge(df1,df2,on='id')
print(df_merge)

②方法2:要实现该合并,也可以通过索引来合并,即以index列为基准。将left_index和right_index都设置为True即可。(left_index和right_index都默认为False,left_index表示左表以左表数据的index为基准,right_index表示右表以右表数据的index为基准。)

import pandas as pd
df1=pd.DataFrame({'id':['001','002','003'],
                  'num1':[120,101,104],
                  'num2':[110,102,121],
                  'num3':[105,120,113]})
df2=pd.DataFrame({'id':['001','002','003'],
                  'num4':[80,86,79]})
print(df1)
print("=======================================")
print(df2)
print("=======================================")
df_merge=pd.merge(df1,df2,left_index=True,right_index=True)
print(df_merge)

相比方法①,区别在于合并出的数据中有重复列。

重要参数:

pd.merge(right,how=’inner’,on=”None”,left_on=”None”,right_on=”None”,left_index=False,right_index=False)

其中,left_index与right_index不能与on同时指定。

合并方式:left、right、outer、inner。

2.多对一合并

import pandas as pd
df1=pd.DataFrame({'id':['001','002','003'],
                  'num1':[120,101,104],
                  'num2':[110,102,121],
                  'num3':[105,120,113]})
df2=pd.DataFrame({'id':['001','001','003'],
                  'num4':[80,86,79]})
print(df1)
print("=======================================")
print(df2)
print("=======================================")
df_merge=pd.merge(df1,df2,on='id')
print(df_merge)

3.多对多合并

import pandas as pd
df1=pd.DataFrame({'id':['001','002','002','002','003'],
                  'num1':[120,101,104,114,123],
                  'num2':[110,102,121,113,126],
                  'num3':[105,120,113,124,128]})
df2=pd.DataFrame({'id':['001','001','002','003','001'],
                  'num4':[80,86,79,88,93]})
print(df1)
print("=======================================")
print(df2)
print("=======================================")
df_merge=pd.merge(df1,df2,on='id')
print(df_merge)

concat()

1.相同字段的表首位相连

import pandas as pd
df1=pd.DataFrame({'id':['001','002','003'],
                  'num1':[120,114,123],
                  'num2':[110,102,121],
                  'num3':[113,124,128]})
df2=pd.DataFrame({'id':['004','005'],
                  'num1':[120,101],
                  'num2':[113,126],
                  'num3':[105,128]})
df3=pd.DataFrame({'id':['007','008','009'],
                  'num1':[120,101,125],
                  'num2':[113,126,163],
                  'num3':[105,128,114]})
print(df1)
print("=======================================")
print(df2)
print("=======================================")
print(df3)
dfs=[df1,df2,df3]
result=pd.concat(dfs)
print(result)

2.横向表合并(行对齐)

import pandas as pd
df1=pd.DataFrame({'num1':[120,114

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7186.html