【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

这篇具有很好参考价值的文章主要介绍了【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

0.环境

1.适用场景

2.pandas.merge()函数详细介绍

3.名词解释“数据对齐”(来自chatGPT3.5)

4.本文将给出两种数据对齐的例子

1)dataframe类型数据和dataframe类型数据对齐(对齐NAME列);

数据对齐前的两组数据集:

数据对齐后的数据集(通过pandas.merge()函数对齐):

代码

2)dataframe类型数据和geopandas类型数据对齐(对齐STATE_NAME字段);

数据对齐前的两组数据集(两个数据集都有很多行,这里只截取其中一部分):

 数据对齐后得到一组geopandas类型数据:

 代码


0.环境

windows + jupyter notebook + python + pandas

1.适用场景

我是在做地理数据可视化的过程中遇到这个需求,我有一个dataframe类型的数据集(数据集A)和一个geopandas类型的数据集(数据集B),我需要用这两个数据绘制【分区统计图】,题目要求为“使用 PySal 数据,创建美国的分区统计路径,该路径描述了 2009 年美国每个州的人均收入。”但是我在直接使用数据的过程中,发现两个数据集的数据无法对齐(数据对齐概念在下一段详述),数据不对齐,就会导致可视化的结果是错误的,比如两个数据集中都有名为NAME的列,但是两个数据集中对于NAME列的顺序是不同的,数据集A中的NAME列顺序可能为:[name1,name3,name2] ,数据集B中NAME列的顺序可能为:[name3,name1,name2],其他对应行的数据肯定也随之不同,这个时候我就不能直接利用两个数据集来做数据可视化,这样可能会将原本不属于name1的数据,安插到name1上,从而导致最终可视化结果出错。为了解决这个问题,我采用数据对齐的方式(使用merge()方法),将两个数据集对齐为一个数据集(geopandas类型)

2.pandas.merge()函数详细介绍

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

官方文档介绍merge()的作用:用数据库样式的连接合并DataFrame或者已命名的Series

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

3.名词解释“数据对齐”(来自chatGPT3.5)

数据对齐是一种重要的数据处理技术,它可以确保数据在相同的索引或列名上对应匹配,从而简化数据处理操作,并提高数据分析的准确性和可靠性。

数据对齐是指在数据处理过程中,将不同数据集或不同索引的数据按照相同的索引进行匹配和对齐的操作。这样做的目的是为了方便数据的比较、合并、计算等操作。

当我们有多个数据集或多个DataFrame对象时,它们可能具有不同的索引或列名。数据对齐的过程可以通过对齐索引或列名来确保数据在相同的位置上对应匹配。这样做有助于消除数据之间的不匹配和缺失值,使得数据处理更加方便和准确。

在数据对齐的过程中,如果两个数据集的索引或列名不完全匹配,那么会自动进行对齐,缺失的值将被填充为缺失值(例如NaN或None)。这样,我们可以确保在进行数据操作时,每个数据点都有相应的值,避免了数据不一致导致的错误或结果偏差。

4.本文将给出两种数据对齐的例子

1)dataframe类型数据和dataframe类型数据对齐(对齐NAME列);

  • 数据对齐前的两组数据集:

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

  • 数据对齐后的数据集(通过pandas.merge()函数对齐):

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

 可以看到两个数据集A和B通过NAME字段进行了对齐

  • 代码

import pandas as pd

# 创建第一个DataFrame
data1 = {'ID': [1, 2, 3],
         'NAME': ['Alice', 'Bob', 'Charlie'],
         'AGE': [25, 30, 35]}
df1 = pd.DataFrame(data1)
print(df1)
print("\n")

# 创建第二个DataFrame
data2 = {'ID': [1, 2, 3],
         'NAME': ['Bob', 'Charlie', 'Alice'],
         'CITY': ['New York', 'London', 'Paris']}
df2 = pd.DataFrame(data2)
print(df2)
print("\n")


# 使用merge方法对齐两个DataFrame的'NAME'列
merged_df = pd.merge(df1, df2, on='NAME')

# 打印对齐后的DataFrame
print(merged_df)

2)dataframe类型数据和geopandas类型数据对齐(对齐STATE_NAME字段);

  • 数据对齐前的两组数据集(两个数据集都有很多行,这里只截取其中一部分):

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

  •  数据对齐后得到一组geopandas类型数据:

可以看到通过STATE_NAME字段,将两个数据集合成了一个geopandas类型的数据集,具体是将两个数据集的所有列根据STATE_NAME字段排序并整合进一个数据集内,还有很多行和列,无法在一个界面显示,这里只截取一部分

【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

  •  代码

注意:代码运行前需要安装对于的模块,如pysal 、geopandas、libpysal等,可以在【Anaconda prompt中用pip install XXX命令下载】

具体下载过程可以参考博客:

下载geopandas包

import pysal as ps
import geopandas as gpd
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

# your code here
from libpysal import examples

#2009年的人均收入数据
income_data  = examples.get_path('usjoin.csv')
#用pandas读数据
usincome = pd.read_csv(income_data)

#重命名dataframe数据(usincome)的Name列
usincome.rename(columns={'Name':'STATE_NAME'}, inplace=True)
# print(type(usincome))
print("对齐前dataframe类型数据:\n")
print(usincome)

#48个州的形状
us_states  = examples.get_path('us48.shp')
us48 = gpd.read_file(us_states )
# print(type(us48))
print("\n对齐前geopandas类型数据:\n")
print(us48)

#数据对齐  STATE_NAME
merged_gdf = us48.merge(usincome, on='STATE_NAME')
# print(type(merged_gdf))
print("\n对齐后geopandas类型数据:\n")
print(merged_gdf)

参考:

(35条消息) python pandas.merge()函数 详解_python中merge函数用法_Late whale的博客-CSDN博客pandas数据合并之一文弄懂pd.merge() - 知乎 (zhihu.com)(35条消息) python pandas.merge()函数 详解_python中merge函数用法_Late whale的博客-CSDN博客

--END--文章来源地址https://www.toymoban.com/news/detail-491888.html

到了这里,关于【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 7个Pandas绘图函数助力数据可视化

    大家好,在使用Pandas分析数据时,会使用Pandas函数来过滤和转换列,连接多个数据帧中的数据等操作。但是,生成图表将数据在数据帧中可视化 , 通常比仅仅查看数字更有帮助。 Pandas具有几个绘图函数,可以使用它们快速轻松地实现数据可视化,文中将介绍这些函数。 首先

    2024年01月21日
    浏览(57)
  • pandas plot函数:数据可视化的快捷通道

    一般来说,我们先用 pandas 分析数据,然后用 matplotlib 之类的可视化库来显示分析结果。 而 pandas 库中有一个强大的工具-- plot 函数,可以使数据可视化变得简单而高效。 plot 函数是 pandas 中用于数据可视化的一个重要工具, 通过 plot 函数,可以轻松地将 DataFrame 或 Series 对象

    2024年03月09日
    浏览(47)
  • EDA-数据探索-pandas自带可视化-iris

    sepal_length sepal_width petal_length petal_width species 0 5.1 3.5 1.4 0.2 setosa 1 4.9 3.0 1.4 0.2 setosa 2 4.7 3.2 1.3 0.2 setosa 3 4.6 3.1 1.5 0.2 setosa 4 5.0 3.6 1.4 0.2 setosa 条形图(柱状图)展示每个字符特征的频数分布。 df[‘字符特征’].value_counts().plot(kind=‘bar’) 直方图展示数字特征的分布情况。 df[‘数

    2024年01月19日
    浏览(56)
  • C#,归并排序算法(Merge Sort Algorithm)的源代码及数据可视化

    归并算法采用非常经典的 分治策略 ,每次把序列分成n/2的长度,将问题分解成小问题,由复杂变简单。 因为使用了递归算法,不能用于大数据的排序。 核心代码: using System; using System.Text; using System.Collections.Generic; using System.Windows.Forms; namespace WindowsFormsApp6 {     public parti

    2024年02月02日
    浏览(60)
  • 【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)

    目录 1 Pandas 可视化功能 2 Pandas绘图实例 2.1 绘制线图 2.2 绘制柱状图 2.3 绘制随机散点图/

    2024年02月08日
    浏览(54)
  • Pandas实战100例 | 案例 24: 数据可视化 - 绘制基本图形

    案例 24: 数据可视化 - 绘制基本图形 知识点讲解 数据可视化是数据分析中的一个重要环节,可以帮助更好地理解和解释数据。Pandas 集成了 Matplotlib,提供了简单的方法来绘制各种图形,如折线图、条形图、散点图等。 绘制图形 : 使用 DataFrame 的 plot 方法可以绘制不同类型的图

    2024年01月17日
    浏览(48)
  • Pandas+Pyecharts | 北京近五年历史天气数据可视化

    大家好,我是 👉 【Python当打之年(点击跳转)】 本期利用 python 的 pyecharts 可视化库绘制 北京市历史天气数据 ,看看 历史高温、历史低温分布以及白天、夜晚的风力、风向分布等情况 ,希望对大家有所帮助,如有疑问或者需要改进的地方可以联系小编。 2018-2022年五年的历史

    2024年02月12日
    浏览(40)
  • Pandas+Pyecharts | 双十一美妆销售数据分析可视化

    大家好,我是 👉 【Python当打之年(点击跳转)】 本期利用 python 分析 双十一美妆销售数据 ,看看: 双十一前后几天美妆订单数量、总销量 各美妆品牌销量情况 美妆品牌一级/二级分类占比 各美妆品牌价格箱型分布情况 各美妆品牌平均价格 美妆品牌词云 等等… 希望对大家有

    2024年02月13日
    浏览(44)
  • 【python可视化大屏】使用python实现可拖拽数据可视化大屏

    我在前几期分享了关于爬取weibo评论的爬虫,同时也分享了如何去进行数据可视化的操作。但是之前的可视化都是单独的,没有办法在一个界面上展示的。这样一来呢,大家在看的时候其实是很不方便的,就是没有办法一目了然的看到数据的规律。为了解决这个问题我使用p

    2024年02月03日
    浏览(62)
  • 【日常收支账本】【Day06】设计可视化账本界面——用Dataframe存放各动账记录,并用QChart展示数据

    https://github.com/LinFeng-BingYi/DailyAccountBook 可视化账本的需求: 一段时间内支出总额、变化趋势、支出结构; 一段时间内收入总额、变化趋势、收入结构; 一段时间内净收入总额、变化趋势; 总资产,分为可用资产和固定资产,忽略非本人名下资产(特指代管存款,如家庭基金

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包