python concat函数_Python玩转Excel(第6期:实用技能之列操作)~这里只有干货

本期介绍一下Python操作一些实用技能列操作,包括删除、插入、添加新列等操作,其实这些操作只需要一个函数即可。在介绍这些之前先介绍一个函数concat

dc154c817d9a4e7d8d2a8bb7e32e11bf.png

在Excel中,我们时常需要操作两个sheet,前面介绍了merge函数,今天再介绍一个连接函数concat

concat函数

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,keys=None, levels=None, names=None, verify_integrity=False)objs:   series,dataframe或者是panel构成的序列listaxis:需要合并链接的轴,0是行,1是列 join: 连接的方式 :inner,oute
import pandas as pddf1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],                    'B': ['B0', 'B1', 'B2', 'B3'],                    'C': ['C0', 'C1', 'C2', 'C3'],                    'D': ['D0', 'D1', 'D2', 'D3']})df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],                    'B': ['B4', 'B5', 'B6', 'B7'],                    'C': ['C4', 'C5', 'C6', 'C7'],                    'D': ['D4', 'D5', 'D6', 'D7']})#.reset_index:重新索引;drop=True删除原索引df=pd.concat([df1,df2]).reset_index(drop=True)print(df)****************************************************      A   B   C   D0  A0  B0  C0  D01  A1  B1  C1  D12  A2  B2  C2  D23  A3  B3  C3  D34  A4  B4  C4  D45  A5  B5  C5  D56  A6  B6  C6  D67  A7  B7  C7  D7*****************************************************

cancat也可以连接Excel中两个sheet表,如:

df1=pd.read_excel('student11.xlsx',sheet_name='p1')df2=pd.read_excel('student11.xlsx',sheet_name='p2')#.reset_index:重新索引;drop=True删除原索引df=pd.concat([df1,df2]).reset_index(drop=True)print(df)

注意:如果两个sheet或DataFrame列名不一致时,在连接的时候系统将会自动填充空值,如:

         city  number         name  test10        xian    10.0          NaN    NaN1     beijing    13.0          NaN    NaN2    shanghai    16.0          NaN    NaN3    shenzhen    19.0          NaN    NaN4      litang    25.0          NaN    NaN5     chengdu    31.0          NaN    NaN6   guangyuan    37.0          NaN    NaN7    mianyang    55.0          NaN    NaN8    jiangyou    73.0          NaN    NaN9      weinan    91.0          NaN    NaN10      baoji   180.0          NaN    NaN11  tongchuan   269.0          NaN    NaN12        NaN     NaN  student_001   88.013        NaN     NaN  student_003   59.014        NaN     NaN  student_005   67.015        NaN     NaN  student_007   78.016        NaN     NaN  student_009   50.017        NaN     NaN  student_011   90.018        NaN     NaN  student_013   78.019        NaN     NaN  student_015   76.020        NaN     NaN  student_003   59.021        NaN     NaN  student_005   67.022        NaN     NaN  student_007   78.0

concat用法与merge、join函数功能有些类似,区别如下:

  • concat:concat方法相当于数据库中的全连接(UNION ALL),可以指定按某个轴进行连接,也可以指定连接的方式join(outer,inner 只有这两种)。与数据库不同的是concat不会去重,要达到去重的效果可以使用drop_duplicates方法

concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True):

  • join:提供了一个简便的方法用于将两个DataFrame中的不同的列索引合并成为一个DataFrame。其中参数的意义与merge方法基本相同,只是join方法默认为左外连接how=left。
  • merge:pandas提供了一个类似于关系数据库的连接(join)操作的方法merage,可以根据一个或多个键将不同DataFrame中的行连接起来。

merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False)

追加、删除和插入一列

追加列比较简单,比如我在学生表内想添加年龄一列,删除、插入类似

#全列年龄都是25岁,你也可以根据实际情况添加列表df['Age']=25#删除年龄、姓名两列df.drop(columns=['Age','name'],inplace=True)#插入一列,1表示插入的位置df.insert(1,column='key',value='value ')

删除具有空值项的行

df.dropna(inplace=True)

今天就到这啦,下期见!!!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值