前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas 基础(8) - 用 con

Pandas 基础(8) - 用 con

作者头像
py3study
发布2020-01-22 12:14:12
4630
发布2020-01-22 12:14:12
举报
文章被收录于专栏:python3python3

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

印度天气的相关信息:

代码语言:javascript
复制
import pandas as pd
india_weather = pd.DataFrame({
    'city': ['mumbai', 'delhi', 'banglore'],
    'temperature': [32, 34, 30],
    'humidity': [80, 60, 72]
})
india_weather

美国天气的相关信息:

代码语言:javascript
复制
us_weather = pd.DataFrame({
    'city': ['newyork', 'chicago', 'orlando'],
    'temperature': [21, 24, 32],
    'humidity': [68, 65, 70]
})
us_weather

用 concat 组合上面两个 dataframe:

代码语言:javascript
复制
df = pd.concat([india_weather, us_weather])
df

输出:

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

代码语言:javascript
复制
df = pd.concat([india_weather, us_weather], ignore_index=True)

输出:

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

代码语言:javascript
复制
df = pd.concat([india_weather, us_weather], keys=['india', 'us'])

输出:

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

代码语言:javascript
复制
df.loc['india']

输出:

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

代码语言:javascript
复制
temperature_df = pd.DataFrame({
    'city': ['newyork', 'chicago', 'orlando'],
    'temperature': [21, 24, 32],
})
代码语言:javascript
复制
windspeed_df = pd.DataFrame({
    'city': ['newyork', 'chicago', 'orlando'],
    'temperature': [7, 12, 9],
})

横向组合:

代码语言:javascript
复制
df = pd.concat([temperature_df, windspeed_df], axis=1)

输出:

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

代码语言:javascript
复制
windspeed_df = pd.DataFrame({
    'city': ['chicago', 'newyork'],
    'temperature': [12, 7],
})

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

代码语言:javascript
复制
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 的组合方式:

代码语言:javascript
复制
s = pd.Series(['Humidity', 'Dry', 'Rain'], name='event')

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

输出:

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档