【数据分析面试】5.地址信息数据清洗合并 (Python)

在这里插入图片描述

题目

有两个数据框。一个包含有关地址的信息,另一个包含了不同城市和州之间的关系。

示例:

df_addresses

address
4860 Sunset Boulevard, San Francisco, 94105
3055 Paradise Lane, Salt Lake City, 84103
682 Main Street, Detroit, 48204
9001 Cascade Road, Kansas City, 64102
5853 Leon Street, Tampa, 33605

df_cities

citystate
Salt Lake CityUtah
Kansas CityMissouri
DetroitMichigan
TampaFlorida
San FranciscoCalifornia

编写一个函数 complete_address 来创建一个单一的数据框,其中包含完整的地址,格式为街道、城市、州、邮政编码。

输入:

import pandas as pd

addresses = {"address": ["4860 Sunset Boulevard, San Francisco, 94105", "3055 Paradise Lane, Salt Lake City, 84103", "682 Main Street, Detroit, 48204", "9001 Cascade Road, Kansas City, 64102", "5853 Leon Street, Tampa, 33605"]}

cities = {"city": ["Salt Lake City", "Kansas City", "Detroit", "Tampa", "San Francisco"], "state": ["Utah", "Missouri", "Michigan", "Florida", "California"]}

df_addresses = pd.DataFrame(addresses)
df_cities = pd.DataFrame(cities)

输出:

def complete_address(df_addresses,df_cities) ->
address
4860 Sunset Boulevard, San Francisco, California, 94105
3055 Paradise Lane, Salt Lake City, Utah, 84103
682 Main Street, Detroit, Michigan, 48204
9001 Cascade Road, Kansas City, Missouri, 64102
5853 Leon Street, Tampa, Florida, 33605

答案

答案代码

def complete_address(df_addresses, df_cities):
    # Split address column into street, city, and zip code
    df_addresses[['street', 'city', 'zip_code']] = df_addresses['address'].str.split(', ', expand=True)
    
    # Merge with df_cities to get state information
    df_complete = pd.merge(df_addresses, df_cities, on='city', how='left')
    
    # Rearrange columns and drop unnecessary columns
    df_complete = df_complete[['street', 'city', 'state', 'zip_code']]
    
    # Concatenate state with the city in the city column
    df_complete['city'] = df_complete['city'] + ', ' + df_complete['state']
    
    # Drop the state column as it's redundant
    df_complete.drop('state', axis=1, inplace=True)
    
    # Concatenate street, city, and zip code to get complete address
    df_complete['address'] = df_complete['street'] + ', ' + df_complete['city'] + ', ' + df_complete['zip_code']
    
    # Drop intermediate columns
    df_complete.drop(['street', 'city', 'zip_code'], axis=1, inplace=True)
    
    return df_complete

代码说明

这段代码使用了Pandas库中的一些常见功能和技术,主要包括:

  1. 字符串操作:使用 str.split() 方法将地址列拆分为街道、城市和邮政编码,以及 str.join() 方法将这些部分连接起来。
  2. 数据合并:使用 pd.merge() 函数将两个DataFrame进行合并,以获取城市对应的州信息。
  3. 列操作:使用 df[column_name] 来选择DataFrame中的某一列,以及使用 df[[column_list]] 来选择多列。使用 df.drop() 方法删除不需要的列。
  4. 数据重排:通过重新排列列的顺序,使DataFrame的列按特定顺序排列。
  5. 数据清洗:删除不需要的中间列,以及删除冗余的状态列。
    这些操作结合起来,使得函数能够根据输入的地址数据和城市-州信息数据,生成完整的地址信息,并返回一个包含完整地址的DataFrame。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/504444.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

hackmyvm———Quick4之tar命令注入

目录 1.信息收集 2.目录扫描 3.文件上传 ​4.提权 简介:HackMyVm是一个集合了大量靶机的平台,通过下载压缩包后导入Vm虚拟机来使用,推荐使用VirtualBox来导入加载漏洞虚拟机。类似于Vulnhub、HackTheBox,但是相比于Vulnhub而言…

利用TensorRT在jetson orin 上加速YOLOv5

一、第一种方法,需要下载各种包: 要用到一个大佬的开源,GitHub地址如下: https://github.com/wang-xinyu/tensorrtx/tree/master/yolov51. 安装pycuda,在线安装pycuda pip3 install pycuda 或者: sudo…

数据结构之单链表实现(JAVA语言+C语言)

一、理论 1 单链表结构 2 增、删、查 、改思路 (增)直接添加放到最后即可。按顺序添加:找到要修改的节点的前一个节点,插入新节点()。(改)要修改的节点修改内容即可。(…

STM32+ MAX30102通过指尖测量心率+血氧饱和度

一、前言 重要的事情放在最前面:max30102只适用于指尖手指测量,不适用与手腕手指测量,如需做成可穿戴样式选择传感器的小伙伴请pass掉他,因为他只有红光和红外2种光,不够充足的数据源去运算。 由于一些原因&#xff0c…

阿基米德分牛问题及其Python求解

文章目录 题目大意sympy求解结果 题目大意 问 太阳神有一牛群,由白、黑、花、棕四种颜色的公、母牛组成,其间关系如下,求每种牛的个数。 公牛中,白牛多于棕牛,二者之差为黑牛的 1 2 1 3 \frac{1}{2}\frac{1}{3} 21​…

排序——交换排序(冒泡排序与快速排序)

本专栏和大家分享关于排序的算法,其中有插入排(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排)、交换排序(冒泡排序和快速排序)、归并排序以及其他非基于比较的排序 本文与大家分享交换排序 目录 …

SAP FICO 银企直联

银企直联是指企业通过互联网或专线连接的方式,使企业的SAP系统与商业银行的业务系统通过特定的数据接口实现连接,在SAP系统中可以直接查询银行账户的余额和明细,实现付款、银企对账、自动出具余额调节表等功能。 在这主要介绍SAP相关CALLSS配…

C++—vector的介绍及使用 vector的模拟实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一、vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator 的使用 1.2.3 vector 空间增长问题 1.2.4 vecto…

Python绘制线图之plt.plot()的介绍以及使用

在Python中plt.plot是matplotlib库中的一个函数,用于绘制点和线,并对其样式进行控制,下面这篇文章主要给大家介绍了关于Python绘制线图之plt.plot()的介绍以及使用的相关资料,需要的朋友可以参考下 plt.plot() 是Matplotlib库中用于绘制线图(折线图)的主…

【递归】有序分数(SBT)

给定一个整数 N,请你求出所有分母小于或等于 N,大小在 [0,1][0,1] 范围内的最简分数,并按从小到大顺序依次输出。 例如,当 N5时,所有满足条件的分数按顺序依次为: 0/1,1/5,1/4,1/3,2/5,1/2,3/5,2/3,3/4,4…

Python | Leetcode Python题解之第1题两数之和

题目: 题解: class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:n len(nums)for i in range(n):for j in range(i 1, n):if nums[i] nums[j] target:return [i, j]return []

GT收发器PHY层设计(4)上板验证

文章目录 前言一、实验平台二、通道1收发数据三、通道2收发数据 前言 在前面三篇内容当中详细介绍了基于GT的PHY设计,本篇内容进行上板测试,主要查看接收数据是否能正确对齐 一、实验平台 俩个光口相互通信,即1发2收,2发1收 发…

C++要学到什么程度才能找到实习?

在考虑 C 学习到何种程度可以找到实习时,以下是一些具体的方向和建议。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信22,我…

Win11 家庭版/专业版开启Hyper-V

​ 目录 收起 一、安装Hyper-V 二、启用Hyper-V Hyper-V是Windows专业版专属功能,但大多数(除商业本)品牌机内置的Windows都是家庭版。只能通过命令开启,方法如下: Windows专业版请直接阅读启用Hyper-V部分 一、安装Hy…

云服务器4核8G配置优惠价格表,买一年送3个月,12M公网带宽

腾讯云轻量4核8G12M服务器优惠价格646元15个月,买一年送3个月,配置为轻量4核8G12M、180GB SSD盘、2000GB月流量、12M带宽,腾讯云优惠活动页面 yunfuwuqiba.com/go/txy 活动链接打开如下图: 腾讯云4核8G服务器租用价格 腾讯云&…

中间件安全(apache、tomcat)

靶场: vulfocus Apache Apache HTTP Server 是美国阿帕奇( Apache )基金会的一款开源网页服务器。该服务器具有快速、可靠且可通过简单的API进行扩充的特点,发现 Apache HTTP Server 2.4.50 中针对 CVE - 2021 - 41773 的修复…

【c++】类和对象(六)深入了解隐式类型转换

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章我们来到初始化列表,隐式类型转换以及explicit的内容 目录 1.初始化列表1.1构造函数体赋值1.2初始化列表1.2.1隐式类型转换与复制初始化 1.3e…

R2GenCMN中的Encoder_Decoder结构

R2GenCMN中的 Encoder_Decoder 结构 Encoder_Decoder 结构直接关系到文本的生成,它结构参考的transformer的结构 我们这里主要看代码的实现,从视觉编码器的输出开始 1. 模型结构 首先介绍一下整体结构,这里的baseCMN其实就是一个包装了的T…

Learning from Multiple Annotator Noisy Labels via Sample-wise Label Fusion

confusion matrix P n ( r ) _n^{(r)} n(r)​ pillow8.3.1和python3.7.11的环境不好满足,不建议复现

前端学习<二>CSS基础——12-CSS3属性详解:动画详解

前言 本文主要内容: 过渡:transition 2D 转换 transform 3D 转换 transform 动画:animation 过渡:transition transition的中文含义是过渡。过渡是CSS3中具有颠覆性的一个特征,可以实现元素不同状态间的平滑过渡…