一 前言

pandas数据拼接有可能会用到,比如出现重复数据,需要合并两份数据的交集,并集就是个不错的选择,知识追寻者本着技多不压身的态度蛮学习了一下下;

二 数据拼接

在进行学习数据转换之前,先学习一些数拼接相关的知识

2.1 join()联结

有关merge操作知识追寻者这边不提及,有空可能后面会专门出一篇相关文章,因为其学习方式根SQL的表联结类似,不是几行能说清楚的知识点;

join操作能将 2 个DataFrame 合并为一块,前提是DataFrame 之间的列没有重复;

# -*- coding: utf-8 -*-

import pandas as pd

import numpy as np

data1 = {

'user' : ['zszxz','craler','rose'],

'price' : [100, 200, 300],

'hobby' : ['reading','running','hiking']

}

index1 = ['user1','user2','user3']

frame1 = pd.DataFrame(data1,index1)

data2 = {

'person' : ['zszxz','craler','rose'],

'number' : [100, 2000, 3000],

'activity' : ['swing','riding','climbing']

}

index2 = ['user1','user2','user3']

frame2 = pd.DataFrame(data2,index2)

join = frame1.join(frame2)

print(join)

输出

user  price    hobby  person  number  activity

user1   zszxz    100  reading   zszxz     100     swing

user2  craler    200  running  craler    2000    riding

user3    rose    300   hiking    rose    3000  climbing

2.2 concat()拼接

使用 concat() 函数能将2个 Series 拼接为一个,默认按行拼接;

ser1 = pd.Series(['111','222',np.NaN])

ser2 = pd.Series(['333','444',np.NaN])

# 默认按行拼接

print(pd.concat([ser1, ser2]))

如果按列拼接则 axis = 1

ser1 = pd.Series(['111','222',np.NaN])

ser2 = pd.Series(['333','444',np.NaN])

# 按列拼接

print(pd.concat([ser1, ser2],axis=1))

输出

0    1

0  111  333

1  222  444

2  NaN  NaN

更近一步,指定key 参数 输出的数据格式就和 DataFrame 一样

ser1 = pd.Series(['111','222',np.NaN])

ser2 = pd.Series(['333','444',np.NaN])

# 按列拼接

data = pd.concat([ser1, ser2],axis=1, keys=['zszxz', 'rzxx'])

print(data)

输出

zszxz rzxx

0   111  333

1   222  444

2   NaN  NaN

注 : DataFrame 的 concat 操作 和 Series 类似;

2.3 combine_first()组合

索引重复时就可以使用combine_first进行拼接

ser1 = pd.Series(['111','222',np.NaN],index=[1,2,3])

ser2 = pd.Series(['333','444',np.NaN,'555'],index=[1,2,3,4])

data = ser1.combine_first(ser2)

print(data)

输出

1    111

2    222

3    NaN

4    555

dtype: object

将Series 位置互换一下,可以看见基准将以 ser2为准;

ser1 = pd.Series(['111','222',np.NaN],index=[1,2,3])

ser2 = pd.Series(['333','444',np.NaN,'555'],index=[1,2,3,4])

data = ser2.combine_first(ser1)

print(data)

输出

1    333

2    444

3    NaN

4    555

dtype: object

2.4 轴转换

准备的数据

# -*- coding: utf-8 -*-

import pandas as pd

import numpy as np

data = {

'user' : ['zszxz','craler','rose'],

'price' : [100, 200, 300],

'hobby' : ['reading','running','hiking']

}

index = ['user1','user2','user3']

frame = pd.DataFrame(data,index)

print(frame)

输出

user  price    hobby

user1   zszxz    100  reading

user2  craler    200  running

user3    rose    300   hiking

stack() 将 列转为行;

# -*- coding: utf-8 -*-

import pandas as pd

import numpy as np

data = {

'user' : ['zszxz','craler','rose'],

'price' : [100, 200, 300],

'hobby' : ['reading','running','hiking']

}

index = ['user1','user2','user3']

frame = pd.DataFrame(data,index)

print(frame.stack())

输出

user1  user       zszxz

price        100

hobby    reading

user2  user      craler

price        200

hobby    running

user3  user        rose

price        300

hobby     hiking

dtype: object

使用 unstack()将 数据结构重新返回

# -*- coding: utf-8 -*-

import pandas as pd

import numpy as np

data = {

'user' : ['zszxz','craler','rose'],

'price' : [100, 200, 300],

'hobby' : ['reading','running','hiking']

}

index = ['user1','user2','user3']

frame = pd.DataFrame(data,index)

sta = frame.stack()

print(sta.unstack())

输出

user price    hobby

user1   zszxz   100  reading

user2  craler   200  running

user3    rose   300   hiking

到此这篇关于pandas数据拼接的实现示例的文章就介绍到这了,更多相关pandas数据拼接内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

python series拼接_pandas数据拼接的实现示例相关推荐

  1. python数据框拼接_pandas数据拼接的实现示例

    一 前言 pandas数据拼接有可能会用到,比如出现重复数据,需要合并两份数据的交集,并集就是个不错的选择,知识追寻者本着技多不压身的态度蛮学习了一下下: 二 数据拼接 在进行学习数据转换之前,先学习 ...

  2. Python数据分析pandas之数据拼接与连接

    Python数据分析pandas之数据拼接与连接 数据拼接处理 数据拼接处理指的是numpy.pandas里对数据的拼接.连接.合并等多种方法的概称.有时我们处理的数据会分很多步骤,而中间或者最终的结 ...

  3. python各种类型的数据拼接_python基础2 数据类型、数据拼接、数据转换

    一.数据类型 1.字符串 字符串英文string,简写str,只要是被[单/双/三引号]这层皮括起来的内容,不论那个内容是中文.英文.数字甚至火星文.只要是被括起来的,就表示是字符串类型 如:prin ...

  4. python series去重_pandas中DataFrame和Series的数据去重

    在SQL语言中去重是一件相当简单的事情,面对一个表(也可以称之为DataFrame)我们对数据进行去重只需要GROUP BY 就好. select custId,applyNo from tmp.on ...

  5. python pandas 去重_Pandas 数据框增、删、改、查、去重、抽样基本操作方法

    怎么使用Python中Pandas库Resample,实现重采样,按照时间,比如原采样间隔为100ms,数据为[0,10,20,30,40],那么重采样#python中的pandas库主要有DataF ...

  6. python卡尔曼滤波融合_数据融合之卡尔曼滤波示例

    哎,难受,知乎把我的完美格式打乱成这样子. 卡尔曼几乎是做数据融合都知道的一个算法了把.卡尔曼滤波能够实现从有噪声的传感器数据中获取我们的较为准确的信息.而且通过卡尔曼,我们甚至能够去推算一些不可直接 ...

  7. 0编程基础学python之数据类型和数据操作

    0基础学习python之数据类型和数据操作 大家都知道,我们python的强大功能之一就是处理数据,所以我们今天就来探讨一下python中的一些数据类型和他们之间的操作吧. 先来回顾学过知识,上图: ...

  8. 用Python对两个数据集中的图像进行水平拼接

    参考 用Python对两个数据集中的图像进行水平拼接 - 云+社区 - 腾讯云 A图: B图: 拼接后: import os import numpy as np import PIL from PI ...

  9. pandas如何合并列表_Pandas数据合并与拼接的5种方法

    Pandas数据处理功能强大,可以方便的实现数据的合并与拼接,具体是如何实现的呢? 一.DataFrame.concat:沿着一条轴,将多个对象堆叠到一起 语法: concat(objs, axis= ...

  10. chatgpt赋能python:Python数据拼接横向--实现数据重组的简单方式

    Python数据拼接横向 --实现数据重组的简单方式 数据处理是现代企业生产力的核心,如今,大数据技术的发展和应用,让数据分析和数据处理变得更加高效和精确了.Python作为一种高级编程语言,得到了广 ...

最新文章

  1. maven Ubuntu14.04 安装
  2. HDU3657Game(最大流)
  3. 通过button返回一个action,跳转到一个view
  4. 区块链BaaS云服务(14)华大BGI区块链“概论“
  5. (原创)OpenStack服务如何使用Keystone(三)---详细配置Keystone中间件
  6. Girton学院研究生宿舍守则
  7. atitit.加入win 系统服务 bat批处理程序服务的法总结instsrv srvany java linux
  8. python分布式进程(windows下)
  9. Python导入运行的当前模块报错
  10. 论windows + asp.net性能
  11. 中科大快手提出多模态交叉注意力模型:MMCA,促进图像-文本多模态匹配!
  12. lolfps高但画面不流畅_华为P40系列90Hz参上 高刷新率玄机一文知晓
  13. java集合了类面试题_一些集合类面试题,说不定你就会遇到
  14. 【FPGA】TestBench中关于@eachvec
  15. 脑皮质算法(2)一种基于新皮层网格细胞的智能和皮质功能的框架
  16. 本地编译AndroidX源码
  17. 怎么在不重启tomcat服务器的情况下更新修改过的后台代码,修改类不用重启Tomcat加载整个项目...
  18. 成都市计算机会考,四川省高中信息技术会考资料及试题
  19. 学生个人网页模板 学生个人网页设计作品 简单个人主页成品 个人网页制作 HTML学生个人网站作业设计
  20. 到底什么是建立时间/保持时间?

热门文章

  1. JavaScript JSON.stringify()
  2. 24.root, alias
  3. 1.深入理解计算机系统---计算机系统漫游
  4. ubuntu安装之后需要做什么
  5. 两种获取python版本的方法
  6. 5款好用的开源JS图片裁剪插件(3个jQuery插件,2个AngularJS插件)
  7. HDU 1063 [Exponentiation]高精度
  8. 关于fineui中在gird中插入按钮的知识
  9. php客户端和服务器的值传递
  10. @using (Html.BeginForm())参数示例