【Python系列】(二)Pandas常用函数

上一篇介绍了Pandas和Numpy这两个包,个人认为比较常用且方便的是Pandas,因此代码第一篇对Pandas的常用函数做一些介绍。

做简单的数据分析用Jupyter Notebook非常方便,利用写这篇文章正好也做一些整理,避免每次都去翻一大堆ipynb文件。

遇到问题优先参考Pandas官方说明文档。

←下载Anaconda,打开Jupyter Notebook

0. 配置镜像源

Anaconda配置镜像源_anaconda镜像源配置_ImperfectGirl的博客-CSDN博客Anaconda配置镜像源的两种方式(Anaconda prompt 和 Anaconda Navigator)https://blog.csdn.net/qq_32650831/article/details/127952502?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168000713516800182743712%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168000713516800182743712&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-127952502-null-null.142%5Ev76%5Einsert_down2,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&utm_term=%E9%85%8D%E7%BD%AE%E9%95%9C%E5%83%8F%E6%BA%90&spm=1018.2226.3001.4187参考这篇配置好即可

1. 万事第一步——安装并导入包

本篇先讲直接在notebook里用pip安装

notebook运行cells的快捷键↓

输入以下代码,Shift+Enter运行

!pip install pandas
!pip install numpy

 看到Successfully install 即安装完成

然后就可以导入了,无报错即安装成功

import pandas as pd
import numpy as np

2. 第二步——读写数据及查看信息

因为导入导出的数据一般都来自于gis,所以空间分析数据一般用.csv格式

【重要】导出csv之后请另存一个excel格式做分析,N次做完直接保存然后丢失所有格式、图片、数据透视表

# 读取数据命名根据自己的分析内容,这里以简单的df代替分析的dataframe
df = pd.read_csv('D://005//03-Data//visitation_data_ca.csv')
df = pd.read_csv('D://005//03-Data//visitation_data_ca.csv', encoding='gbk') #如有中文使用gbk编码# 将df显示完整
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
pd.set_option('max_colwidth',100)# 打印数据信息
print(df) #打印所有数据,最下面一行会有row和column的数量
print(df.shape) #打印数据的形状
print(df.head(5)) #打印数据前五行# 把处理好的数据写为csv
df.to_csv('D://005//03-Data//visitation_data_ca_process.csv', index=False) #index=False表示不写出索引行

3. 数据清洗

数据清洗是非常重要且关键的一步,大部分空间分析所用数据都存在缺失等问题。

3.1 首先查看数据信息

df.info()

3.2 查找并处理空缺数据

# 是否空值判断
df.isnull()
df.isna()# 每列是否含有空值判断
df.isnull().any()# 对于空间分析来说,一般会把空值行去掉
df.dropna()
# 再打印df的行列数看看
df.shape# 但比如手机信令数据,需要全覆盖的基站数据,就要考虑填充空值
# 用相邻的值填充空值,比如
df.fillna(method="bfill",inplace=True)

4. 筛选数据

参考Python pandas 根据指定条件筛选数据_pandas筛选符合条件的数据_永远在减肥永远110的的小潘的博客-CSDN博客1、构造dataframeimport pandas as pdimport numpy as npdf=pd.DataFrame(np.arange(16).reshape(4,4),columns=["sh","bj","sz","gz"],index=["one","two","three","four"])2、筛选出"sh"列大于5的数据法一:直接筛选,适用于一些比较简单直接的筛选,这种方式方便快捷。df[df["sh"]>5]法二:函数筛选,适用于比较复杂的条件筛选,函https://blog.csdn.net/p1306252/article/details/114879951?ops_request_misc=&request_id=&biz_id=102&utm_term=pandas%E7%AD%9B%E9%80%89%E6%95%B0%E6%8D%AE&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-114879951.142%5Ev77%5Einsert_down38,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&spm=1018.2226.3001.4187

# 构建dataframe
df = pd.DataFrame(np.arange(16).reshape(4,4),columns=["sh","bj","sz","gz"],index=["one","two","three","four"])

4.1 基于数值比较筛选

方法一:直接简单筛选

df[df["sh"]>5] # 筛选大于5
df[df["sh"]==5] # 筛选等于5

方法二:利用匿名函数筛选

df[df["sh"].map(lambda x:x>5)]
df[df["sh"].map(lambda x:x==5)]

方法三:利用isin()函数多值筛选

df[df["sh"].isin([5])]

4.2 模糊筛选

方法一:str.contains()函数

province = pd.DataFrame(['广东', '广西', '福建', '福建省'], columns=['省份'])
province.loc[province["省份"].str.contains("福")] # 筛选出福建省数据

方法二:正则匹配

import re
province = pd.DataFrame(['广东', '广西', '福建', '福建省'], columns=['省份'])
# 自定义函数,如果包含“广”字,则返回True,否则返回False
def func(x):if re.search(".*广.*",x):return(True)else:return(False)
province[province["省份"].apply(func)]

方法三:切片

df = pd.DataFrame({"date":["2020efgdh0228","2021hijik0228","2019hokh0201"],"value":[9999,777,4]})# 筛选出2019年的数据
df[df["date"].map(lambda x:x[0:4])=="2019"]

5. Groupby函数分组

参考

pandas之groupby函数_pandas groupby_米法·的博客-CSDN博客sql中的分组语句group by很重要,pandas中也有类似的分组函数,即groupby,本文就主要介绍下它的用法。https://blog.csdn.net/TSzero/article/details/115430661?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_utm_term~default-6-115430661-blog-79839363.235%5Ev27%5Epc_relevant_recovery_v2&spm=1001.2101.3001.4242.6&utm_relevant_index=9

# 创建dataframe
data = {'name': ['apolo', 'apolo', 'apolo', 'adm', 'adm', 'adm', 'bolon', 'bolon', 'bolon', 'ali', 'ali', 'ali', 'cathy', 'cathy', 'cathy', 'jack', 'jack', 'jack'],'subjects': ['math', 'english', 'chinese', 'math', 'english', 'chinese', 'math', 'english', 'chinese','math', 'english', 'chinese', 'math', 'english', 'chinese', 'math', 'english', 'chinese'],'grades' : [89, 78, 84, 89, 83, 85, 77, 88, 79, 89, 86, 83, 95, 90, 94, 78, 70, 80]}
df = pd.DataFrame(data)
df# 求平均值(会输出每个学生的平均成绩)
df.groupby('name').mean()# 用聚合函数求平均和最小值(输出平均成绩和最低成绩)
df.groupby('name').agg(['mean', 'min'])# 传入自定义的面向分组的函数
df.groupby('name').apply(lambda x:x[x['subjects'] == 'math']['grades'].mean() - x[x['subjects'] == 'english']['grades'].mean())

6. dataframe, array, list格式互换

# array转dataframe
df = pd.DataFrame(array)# dataframe转array
array1 = np.array(df)# list转dataframe
df = pd.DataFrame(mylist1, columns=['name1', 'name2', 'name3']) # dataframe转list
mylist2 = df['name1'].to_list()

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

赛道冠军为AI狂飙:实在智能即将重归福州,亮相第六届数字中国建设峰会

2023年4月26日至30日,第六届数字中国建设峰会将在福建省福州市举行。本届峰会以“加快数字中国建设,推进中国式现代化”为主题,由国家网信办、国家发展改革委、科技部、工业和信息化部、国务院国资委、福建省人民政府共同主办。 作为我国信息…

和ChatGPT关于Swing music的一场对话(下篇)

昨天无意中刷到的系统推送的文章 点进去一看,原来介绍的就是老苏为了抛砖引玉编的 Swing music 的镜像,动作真是快啊。 坦白的说,文章比老苏写的好,所以让我纠结了好一阵子,本文我是发呢还是不发呢?不过似…

chatgpt赋能python:Python编写桌面宠物,让你的电脑更加生动

Python编写桌面宠物,让你的电脑更加生动 在我们每天使用电脑的时候,桌面经常会显得乏味且无趣。那么,为什么不添加一个可爱的桌面宠物呢?在这篇文章中,我们会教你如何使用Python编写桌面宠物,并将它放置在…

chatGPT之100个例子-从体验到精通

简介 本博文演示了100个chatGPT在各行各业的使用例子,全部看完有助于培养chatGPT解决问题的思维。 在人工智能时代,智能软件并不会淘汰人类,淘汰人类的是会使用人工智能的人! 我们直接使用openAI官方chatGPT,生动演示了chatGPT的一些妙用! 请仔细看完,一定会有收获! 每…

ChatGPT 可以干的 18 件事!附源码

ChatGPT狂飙160天,世界已经不是之前的样子。 我新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 给大家整理了 18 种 ChatGPT 的用法,看看有哪些方法是你能得上的。 语法更正 文本翻译 语言转换 代码解释 修复…

蛋白质界的 ChatGPT:AlphaFold1 论文必备知识,不会有人还不知道吧

你知道 AlphaFold2 吗?它真正解决了蛋白质三维结构预测的算法困境,堪称蛋白质界的 chat-GPT4,甚至它的意义不是 chat-GPT4 所能够匹敌的。它为世界疾病治疗药物开发以及探究生物生命之谜提供了通向天神的一条道路,未来是生物的世纪…

融云WICC2023:成为「卷王」的路上,如何更好借力 AIGC

近期,“融云 WICC2023 泛娱乐出海嘉年华”在广州成功举办,行业多方力量与数百位开发者汇聚一堂,共同探讨出海人布局全球的突围之道。关注【融云全球互联网通信云】了解更多 在嘉年华的圆桌会议环节,白鲸出海创始人&CE…

AI明星翻唱还不够!有人要拿它当生活助手,支持聊天点外卖等,1:1复刻原声...

明敏 发自 凹非寺量子位 | 公众号 QbitAI AI孙燕姿爆火,突然让人意识到偶像声音复刻这事儿,可大有搞头啊。 毕竟咱平常看看明星爱豆,也就是为了好看、好听。 如果明星可以和我们随时互动,并且成为自己生活中的小助手,那…

分享 10 几个付费资源,一会删!

2023年了随着疫情的结束,经济也会慢慢的复苏,但是这时你会发现,随着在这个社会上信息差逐渐变大,大家的收入也在不断的进入两极分化,这就是所谓的二八定律! 可能你最近面临着迷茫,工资低&#x…

盘点元宇宙的2022:3次洗牌,1个机会

作者|不空 在元宇宙爆火后的第二年,悲观情绪开始在行业蔓延。 “在过去一年,很多友商走着走着就不见了。” 方糖星球创始人文旻的一句话不仅道出了元宇宙空间赛道的起伏,也总结了元宇宙行业的发展。 复盘2022年,元宇宙…

【小沐学NLP】Python实现聊天机器人(OpenAI,模型概述笔记)

🍺NLP开发系列相关文章编写如下🍺:1🎈【小沐学NLP】Python实现词云图🎈2🎈【小沐学NLP】Python实现图片文字识别🎈3🎈【小沐学NLP】Python实现中文、英文分词🎈4&#x1…

全面拥抱 AI 大模型——务实程序员的范式转变

目录 我一直是一名软件开发爱好者 思考架构

巴比特 | 元宇宙每日必读:90%以上的短剧剧本可以由AI生成?“AI莎士比亚”是否将出现,并给编剧沉重一击?...

摘要:据雪豹财经社报道,今年5月,美国好莱坞爆发了15年以来最大规模的一次编剧罢工,诉求之一是把AI从电影和电视创作中排除,不要试图取代编剧。有厂商称,很多制作短剧的MCN养了五六个编剧,如果用…

2023短剧出海怎么做? 一文看懂海外短剧的数据、案例和解决方案

短剧在中国市场取得了巨大的成功,截止2023年6月30日,短剧在中国大陆的市场每天的收入已经接近1亿人民币。这里的收入是指短剧平台公司,其中各大短剧公司、代理商(分销商)、个人创作者每天在抖音、快手等平台的投放已经…

时隔两个多月,一起来看ChatGPT现况如何?

ChatGPT这股风吹了两个多月,时至今日,各平台上与ChatGPT相关的文章,到现在依旧拥有着不小的流量。三月中旬上线了ChatGPT-4,与我们的文心一言前后脚发布,而后阿里的“通义千问”也展现了不俗的实力,那到现在…

ChatGPT 增长逐渐放缓,不再能吞噬整个网络?

整理 | 陈静琳 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) ChatGPT 的爆火,是昙花一现,还是未来可期? 近日,网站流量分析工具 Similarweb 针对 ChatGPT 目前的数据流量现状进行了一次深度的调研…

OpenAI-ChatGPT最新官方接口《AI绘图》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(三)(附源码)

ChatGPT-AI绘图 Image generation Beta 图片生成前言IntroductionUsageGenerationsEdits 编辑 VariationsLanguage-specific tips 特定语言提示Python 语言Using in-memory image data 使用内存中的图像数据Operating on image data 操作图像数据Error handling Node.js 语言Us…

utools 效率桌面工具

我们平时可能需要各种工具插件辅助我们进行开发工作,以此来提高效率,例如翻译插件,变量命名,json格式转换,postman、mock等等 但是这些插件可能遍布于各种平台,例如浏览器,编辑器或者桌面应用…

utools的安装与安装路径更改

utools的安装与安装路径更改 utools简介下载utools更改utools的安装路径 utools简介 uTools your tools(你的工具集) uTools 是一个极简、插件化的现代桌面软件,通过自由选配丰富的插件,打造得心应手的工具集合。 通过快捷键&am…

快速启动的效率工具utools工具使用

说明 最近看到一个快速启动的效率工具utools,个人使用下来挺好的,在这里记录一下。 安装utools 参考: uTools官网:https://u.tools 简单使用 通过鼠标中键可以换出快捷菜单 使用altEnter可以换出工具,输入想要…