博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Pandas 基础(8) - 用 concat 组合 dataframe
阅读量:7039 次
发布时间:2019-06-28

本文共 1750 字,大约阅读时间需要 5 分钟。

以各个城市的天气为例, 先准备下面的数据:

印度天气的相关信息:

import pandas as pdindia_weather = pd.DataFrame({ 'city': ['mumbai', 'delhi', 'banglore'], 'temperature': [32, 34, 30], 'humidity': [80, 60, 72] }) india_weather

美国天气的相关信息:

us_weather = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'temperature': [21, 24, 32], 'humidity': [68, 65, 70] }) us_weather

用 concat 组合上面两个 dataframe:

df = pd.concat([india_weather, us_weather]) df

输出:

上面的输出最左边的序列号是重复的, 原因是数据分别来自两个 dataframe 的索引值, 可以通过忽略原本的索引来做改变:

df = pd.concat([india_weather, us_weather], ignore_index=True)

输出:

下面再介绍另一种输出形式:

df = pd.concat([india_weather, us_weather], keys=['india', 'us'])

输出:

由于我们上面设置了关键字, 所以下面就可以利用这个关键字获取相关的信息:

df.loc['india']

输出:

从我们一系列的输出可以看出, 这些组合都是纵向的组合, 那么在实际应用中, 我们是经常需要做横向组合的, 比如下面的例子:

temperature_df = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'temperature': [21, 24, 32], })
windspeed_df = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'temperature': [7, 12, 9], })

横向组合:

df = pd.concat([temperature_df, windspeed_df], axis=1)

输出:

从目前的输出来看, 两组数据对应的很好, 同一个城市都在同一行上, 那如果我们把数据源改下:

windspeed_df = pd.DataFrame({ 'city': ['chicago', 'newyork'], 'temperature': [12, 7], })

我改动了关于风速的数据, 颠倒了城市的顺序, 还删掉了一个城市, 大家可以自己运行一下, 看到输出的结果有点乱了. 遇到这种情况, 我们可以通过给原数据加索引的方式, 来设置数据的排序:

temperature_df = pd.DataFrame({ 'city': ['newyork', 'chicago', 'orlando'], 'temperature': [21, 24, 32], }, index=[0, 1, 2]) windspeed_df = pd.DataFrame({ 'city': ['chicago', 'newyork'], 'temperature': [12, 7], }, index=[1, 0])

输出:

这样数据顺序就调好了.

下面再介绍一下 dataframe 与 series 的组合方式:

s = pd.Series(['Humidity', 'Dry', 'Rain'], name='event')df = pd.concat([temperature_df, s], axis=1)

输出:

以上就是关于 concat 的组合数据的一些常用方法啦, 下节课会带来更劲爆的组合方法, enjoy~~~

 

转载于:https://www.cnblogs.com/rachelross/p/10428602.html

你可能感兴趣的文章
【DAY9】 关于多线程熊吃蜜Demo1的作业实验
查看>>
Python实现多属性排序
查看>>
nginx 访问日志分析
查看>>
RabbitMQ之消息确认机制(事务+Confirm)
查看>>
给出一个数组,计算数组中少了哪个数据的实现
查看>>
USB-232卡 配置
查看>>
C#窗体程序皮肤设置
查看>>
T-SQL.字符串函数
查看>>
mysql慢查询
查看>>
offices文件打开乱码问题如何处理
查看>>
抓屏程序
查看>>
many-to-many出现的问题
查看>>
第5章 配置邮箱服务
查看>>
node.js的一个简单框架
查看>>
PPT如何保存还原已剪裁图片的原始版本
查看>>
lnmp一键安装之-php
查看>>
ajax 同步和异步的区别
查看>>
linux shell单引号、双引号及无引号区别(考试题答案系列)--看到这篇文章之后我豁然开朗...
查看>>
排错 zabbix-agent 主机重启无法被监控
查看>>
win10操作系统
查看>>