pandas 合并表(concat + merge)并存储单行单列,多行多列

写在前面

  • 通常们需要进行多表合并操作,合并后有需要把处理后的表存储回去。
  • merge 通常按指定行进行合并,可以理解为Exel中的vlookup函数。
  • concat 通常按列名或行名合并,通过axis参数指定,可以用于新增多行或者多列(新增单行单列不需要这样麻烦,但新增多行多列建议使用concat)

1. merge

1.1参数详解
  • how 默认为inner,可设为inner/outer/left/right
  • on 根据某个字段进⾏连接,必须存在于两个DateFrame中(若未同时存在,则需要分别使⽤left_on和right_on来设置)
  • left_on 左连接,以DataFrame1中⽤作连接键的列
  • right_on 右连接,以DataFrame2中⽤作连接键的列
  • left_index 将DataFrame1⾏索引⽤作连接键
  • right_index 将DataFrame2⾏索引⽤作连接键
  • sort 根据连接键对合并后的数据进⾏排列,默认为True
  • suffixes 对两个数据集中出现的重复列,新数据集中加上
1.2 参考链接

https://blog.csdn.net/bqw18744018044/article/details/79944544

2. concat (新增行列比较好用)

2.1 参数详解
  • objs:要进行拼接的pandas对象,可用中括号[]将两个或多个对象括起来
  • axis:指定对象按照那个轴进行拼接,默认为0(纵向拼接),1为横向横向拼接
  • join:拼接的方式,inner为交集,outer为并集
  • join_axes:index的列表,仅在横向合并时使用,指明要将数据合并入哪个原表的index。
  • ignore_index:默认为False,如果设置为true,则无视表原来的轴标签,直接合并,合并后生成新的轴标签。
  • keys:表标识的列表,用来区分合并的表来自哪里。
2.2 参考链接

https://www.jb51.net/article/206970.htm
https://blog.csdn.net/nilingxi/article/details/123841413

2.3 实际场景
  • 工作时 用来更新数据, 代码只给了片段,所以给了较多注释
  • 有需要具体案例的私信
# 新加的多列, 先转化为同列名名的 dataframe对象
# increase_row 是上文代码构建的二维数组
new_rows = pd.DataFrame(increase_row, columns=df2.columns)
# 默认安列名合并 
# [df2, new_rows] 两个合并的dataframe对象 一定要这样放
new_df = pd.concat([df2, new_rows], axis=0, ignore_index=True)
# 存储会原表 dict_config["update_file"] 这里自己写成配置文件了,
new_df.to_excel(dict_config["update_file"], sheet_name='sheet1',
                        index=False, header=True)

3. 存储单行单列 修改单个值

  • 这部分相对比较简单,以下参考链接已经比较完善,就不做额外补充
https://www.jb51.net/article/163904.htm

4.合并两列数据多种方法

https://www.delftstack.com/zh/howto/python-pandas/how-to-combine-two-columns-of-text-in-dataframe-in-pandas/

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值