您的位置: 网站首页> Pandas教程> 当前文章

concat函数合并DataFrame与Series、添加列操作

老董-我爱我家房产SEO2020-06-28196围观,106赞

  pandas.concat()函数可以合并多个df也可以合并df与Series,主要掌握5个参数:

  objs:列表,每个元素是Series或者df

  axis:左右还是上下合并,axis=0为上下合并

  join:对齐方式inner、outer。默认是outer

  sort:version 0.23.0.版本新增的,一般设为False。对齐方式inner会忽略改参数,

  ignore_index:是否忽略掉原来的索引

  我们用一些小案例来学习下concat函数。

  1、默认上下合并,对齐方式为outer,不忽略原来的索引

# -*- coding: utf-8 -*-
import pandas as pd

dict1 = {'城市':['北','上','广','深'],'面积':[100,150,200,300],'天气':['差','中','优','好']}
dict2 = {'城市':['北','上','广','深'],'面积':[100,150,200,300],'人口':['多','多','多','多']}
df1 = pd.DataFrame(dict1)
df2 = pd.DataFrame(dict2)
print(df1)
print('-----------')
print(df2)

print('-----------')
df = pd.concat([df1,df2],axis=0,sort=False)
print(df)

  城市   面积 天气
0  北  100  差
1  上  150  中
2  广  200  优
3  深  300  好
-----------
  城市   面积 人口
0  北  100  多
1  上  150  多
2  广  200  多
3  深  300  多
-----------
  城市   面积   天气   人口
0  北  100    差  NaN
1  上  150    中  NaN
2  广  200    优  NaN
3  深  300    好  NaN
0  北  100  NaN    多
1  上  150  NaN    多
2  广  200  NaN    多
3  深  300  NaN    多


  2、上下合并,对齐方式为inner,不忽略原来的索引

# -*- coding: utf-8 -*-
import pandas as pd

dict1 = {'城市':['北','上','广','深'],'面积':[100,150,200,300],'天气':['差','中','优','好']}
dict2 = {'城市':['北','上','广','深'],'面积':[100,150,200,300],'人口':['多','多','多','多']}
df1 = pd.DataFrame(dict1)
df2 = pd.DataFrame(dict2)
print(df1)
print('-----------')
print(df2)

print('-----------')
df = pd.concat([df1,df2],axis=0,join='inner')
print(df)

  城市   面积 天气
0  北  100  差
1  上  150  中
2  广  200  优
3  深  300  好
-----------
  城市   面积 人口
0  北  100  多
1  上  150  多
2  广  200  多
3  深  300  多
-----------
  城市   面积
0  北  100
1  上  150
2  广  200
3  深  300
0  北  100
1  上  150
2  广  200
3  深  300



  3、添加一列Series,对齐方式为outer,不忽略原来的索引

# -*- coding: utf-8 -*-
import pandas as pd

dict1 = {'城市':['北','上','广','深'],'面积':[100,150,200,300],'天气':['差','中','优','好']}
df1 = pd.DataFrame(dict1)
print(df1)

print('-----------')
s = pd.Series(['下','上','中','上'],name='风景')
df = pd.concat([df1,s],axis=1)
print(df)
print('-----注意看,索引顺序变了---')
df = pd.concat([s,df1],axis=1)
print(df)

  城市   面积 天气
0  北  100  差
1  上  150  中
2  广  200  优
3  深  300  好
-----------
  城市   面积 天气 风景
0  北  100  差  下
1  上  150  中  上
2  广  200  优  中
3  深  300  好  上
-----注意看,索引顺序变了---
  风景 城市   面积 天气
0  下  北  100  差
1  上  上  150  中
2  中  广  200  优
3  上  深  300  好


很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    concat函数合并DataFrame与Series、添加列操作文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200