pandas知识小结

Pandas基础入门知识点总结 pandas 自学笔记 阅读详情
"""

Pandas基本介绍—Python Data Analysis Library 或 Pandas是基于Numpy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

"""

#导入

import pandas as pd

import numpy as np

#pandas数据结构

"""

一维数组Series

类Numpy的一维数组array,二者与Python基本的数据结构List也很接近。Series**能保存不同种数据类型**,字符串、boolean值、数字等都能保存在Series中。

二维表格型dataFrame

二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。

"""

s = pd.Series([1,3,5,np.nan,6,8],index = ['a','b','c','d','x','y'])

index设置索引,不设置的话在输出时会在值左侧默认生成0,1,2等索引,np.nan设置空值

#索引-数据的行标签

s.index #查看索引 RangeIndex(start=0, stop=6, step=1) [0,6),步长1

s.values #查看值 array([ 1., 3., 5., nan, 6., 8.])

s[3] #针对查询

s[2:5] #切片 左闭右开

s[::2] #基本操作与python语法相同

s.index.name = '索引' #设置索引的名字,会在索引那一列上面生成一个名字

s.index = list('abcdef') #会更改索引的值,使用list中每个字母作为一个索引

s['a':'c':2] #依据定义的索引切片



Pandas库的DataFrame类型

date = pd.date_range("20180101", periods = 6) #构造一组时间序列,作为第一维的

#下标,这里20180101是时间起点,periods是6个值

df = pd.DataFrame(np.random.randn(6,4), index = date, columns = list("ABCD")) #使用了date作为行名,列名用columns定义,用随机数根据形状产生值,默认是0开始产生索引

df2 = pd.DataFrame({'A':1.,'B':pd.Timestamp("20181001"),'C':pd.Series(1,index = list(range(4)),dtype = float),'D':np.array([3]*4, dtype =int),'E':pd.Categorical(["test","train","test","train"]),'F':"abc"}) #B:时间戳,E分类类型



df2.dtypes #查看各个列的数据类型

#字典的每个key代表一列,其value可以是各种能够转化为Series的对象。

#与Series要求所有的类型都一致不同,DataFrame只要求每一列数据的格式相同。



查看数据

df.head() #查看头部几行数据(默认5)

df.tail(3) #尾部数据(括号的数字指定几行)

df.index #查看行标

df.columns #查看列标

df.values #查看值,和Series的用法一样



#pandas的数据读取保存和数据操作

df = pd.read_excel(r"./豆瓣电影数据.xlsx",index_col = 0) #读取csv:read_csv;绝对路径或相对路径默认在当前文件夹下。r告诉编译器不需要转义
df.to_excel("movie_data.xlsx") #默认路径为现在文件夹所在的路径

#pandas的行操作

df.iloc[0] #查看第一行

df.iloc[0:5] #左闭右开

df.loc[0:5] #不是左闭右开,都是闭

dit = {"名字":"复仇者联盟3","投票人数":123456,"类型":"剧情/科幻"。。。}

s = pd.Series(dit)

s.name = 38738 #先写个字典,用series转换成一维数组,添加name列名

df = df.append(s) #在已有数据上添加

df = df.drop([38738]) #根据列名删除列

#pandas 列操作
df["名字"][:5] #查看"名字"这列前5个数据
df[["名字","类型"]][:5] #查看"名字","类型"这两列前5个数据
df["序号"] = range(1,len(df)+1) #生成序号的基本方式,直接增加序号一列
df = df.drop("序号",axis = 1,inplace=True) #删除列,axis指定方向,0为行1为列,默认为0,是否代替原始数据
df.loc[[index],[column]] #通过标签选择数据,指定某行index,某列column
df.loc[[1,3,5,7,9],["名字","评分"]] #多行跳行多列跳列选择

#pandas条件选择
df[df["产地"] == "美国"][:5] #df["产地"] == "美国"]得到的是一个bool数组,重新使用df会读取true的部分也就是符合条件的,后面加索引可指定切片
df[((df.产地 == "美国") | (df.产地 == "中国大陆")) & (df.评分> 9)][:5] #多重条件

#pandas缺失值及异常值处理
df[df["名字"].isnull()].loc[:10] #isnull返回一个布尔值对象,判断哪些值是缺失值
df[df["名字"].notnull()][:5]  #isnull的否定式
df["评分"].fillna(np.mean(df["评分"]), inplace = True)#对缺失值进行填充,这里使用均值来进行替代,inplace意为直接在原始数据中进行修改 
df.dropna() 参数 例df.dropna(how = 'all',inplace = True,axis = 0)
how = 'all':删除全为空值的行或列
inplace = True: 覆盖之前的数据
axis = 0: 选择行或列,默认是行  #根据标签中的缺失值进行过滤,删除缺失值

#数据格式转换
"""
在做数据分析的时候,原始数据往往会因为各种各样的原因产生各种数据格式的问题。 
数据格式是我们非常需要注意的一点,数据格式错误往往会造成很严重的后果。 
并且,很多异常值也是我们经过格式转换后才会发现,对我们规整数据,清洗数据有着重要的作用。
"""
df["投票人数"].dtype #查看格式
df["投票人数"] = df["投票人数"].astype("int") #转换格式
df["年代"] = df["年代"].astype("int") #有异常值会报错
根据异常 invalid literal for int() with base 10: '2008\u200e'
df[df.年代 == "2008\u200e"] #找到异常数据

#排序
df[:10] #默认排序
df.sort_values(by = "投票人数", ascending = False)[:5] #按照投票人数进行排序,ascending表示升序,这里False也就是降序descending,by用来指定列,by = ["评分","投票人数"],列表中的顺序决定先后顺序

#基本统计分析
#(1)描述性统计
df.describe() #统计内容包括每列下的count总数,mean均值,std标准差,min,max,25%,50%,75%等数据
通过描述性统计,可以发现一些异常值,很多异常值往往是需要我们逐步去发现的。
df.drop(df[df["年代"] > 2018].index, inplace = True)
df.drop(df[df["时长"] > 1000].index, inplace = True)#在获取数据异常的行时使用drop在原始数据中删除这行数据
df.index = range(len(df)) #解决删除后索引不连续的问题
#(2)最值
df["年代"].min()
#(3)均值和中值
df["投票人数"].mean() #均值
df["投票人数"].median() #中位数
#(4)方差和标准差
df["评分"].var() #方差
df["评分"].std() #标准差
#(5)求和
df["投票人数"].sum() 
#(6)相关系数和协方差
df[["投票人数", "评分"]].corr() #相关系数 
1.正值:表示两个变量之间正向关联,即一个变量增加时,另一个也倾向于增加。
2.负值:表示负相关,一个变量增加时,另一个减少。
3.接近1或-1:表示强烈的线性关系,接近0则表示关系较弱或不存在。
df[["投票人数", "评分"]].cov() #协方差-在概率论和统计学中衡量两个变量的总体误差 计算公式COV(X,Y)=E(X,Y)-E(X)*E(Y) 结果判断:
1.如果两项趋于反向变动,则协方差为负
2.如果两项趋于同向变动,则协方差为正
3.变动互不相干,则为零
#(7)计数
len(df) #计数行数量
df["产地"].unique() #会返回产地这一列出现过的值,相同的只会返回一次
df["年代"].value_counts(ascending = True)[:10] #value_counts函数会计算当前列每种元素出现的次数,数据输出结果(左侧元素类别,右侧次数),默认出现频率从大到小
2018    1
1890    1
1892    1
#(8)去重复
df["产地"].replace("USA","美国",inplace = True) #第一个参数是要替换的值,第二个参数是替换后的值
df["产地"].replace(["西德","苏联"],["德国","俄罗斯"], inplace = True) #注意一一对应

#数据透视
"""
Excel中数据透视表的使用非常广泛,其实Pandas也提供了一个类似的功能,名为pivot_table。
pivot_table非常有用,我们将重点解释pandas中的函数pivot_tabl_table。
使用pandas中的pivot_table的一个挑战是,你需要确保你理解你的数据,并清楚地知道你想通过透视表解决什么问题。虽然pivot_table看起来只是一个简单的函数,但是它能够快速地对数据进行强大的分析。
"""
#(1)基础形式
pd.set_option("display.max_columns",100) #设置可展示的行和列,让数据进行完整展示
pd.set_option("display.max_rows",500)
pd.pivot_table(df, index = ["年代"]) #统计各个年代中所有数值型数据

#(2)也可以有多个索引。实际上,大多数的pivot_table参数可以通过列表获取多个值。
pd.pivot_table(df, index = ["年代", "产地"]) #双索引,这里就是对每个年代的不同产地进行统计,默认会统计所有列是int或者float这类数据格式的数据

#(3)也可以指定需要统计汇总的数据
pd.pivot_table(df, index = ["年代", "产地"], values = ["评分"]) #这里指定了统计评分这一类数据

#(4)还可以指定函数,来统计不同的统计值
pd.pivot_table(df, index = ["年代", "产地"], values = ["投票人数"], aggfunc = np.sum) 
#aggfunc = np.sum 这里指定了func函数为numpy的求和函数
pd.pivot_table(df, index = ["产地"], values = ["投票人数", "评分"], aggfunc = [np.sum, np.mean]) #通过将“投票人数”列和“评分”列进行对应分组,对“产地”实现数据聚合和总结。
"""
                sum            	mean
        投票人数	评分	投票人数	评分
产地				
中国台湾	5237466	 1         2     3
"""
#(5)非数值(NaN)难以处理。如果想移除它们,可以使用“fill_value”将其设置为0
pd.pivot_table(df, index = ["产地"], aggfunc = [np.sum, np.mean], fill_value = 0)

#(6)加入margins = True,可以在下方显示一些总和数据。
pd.pivot_table(df, index = ["产地"], aggfunc = [np.sum, np.mean], fill_value = 0, margins = True)
"""
韩国	2694871	8759930	134225	8523.200000	2008.100596	
All	76206345	239233853	3393967	264149.735704	1996.
"""
#(7)对不同值执行不同的函数:可以向aggfunc传递一个字典。不过,这样做有一个副作用,那就是必须将标签做的更加整洁才行。
pd.pivot_table(df, index = ["产地"], values = ["投票人数", "评分"], aggfunc = {"投票人数":np.sum, "评分":np.mean},fill_value = 0)

#(8)多个索引汇总
pd.pivot_table(df, index = ["产地", "年代"], values = {"投票人数":np.sum, "评分":np.mean}, fill_value = 0)
"""
		投票人数	评分
产地	年代		
中国台湾	1963	121	6.400000
        1965	461	6.800000
        1966	51	7.900000
...	...	...	...
韩国	2012	610317	6.035238
        2013	1130800	6.062037
"""







Pandas部分应掌握的重要知识点 《数据采集与分析》课程Pandas部分应掌握的重要知识点,复习总结Pandas库的相关内容。 阅读详情

相关推荐

CMAC算法原理

2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;

sky的博客 1659

pandas 在某个列表中的值 筛选列_Pandas学习笔记(二)

前言上一篇研究了如何构建一个Pandas的Series和DataFrame,之后对DataFrame的行列选择及增加删除行为进行了探索,这一节将从如何对DataFrame进行条件选择开始。条件选择DataFrame中的条件选择指的是这样一回事,比如对某个全为数字的列,我们可以通过指定该列大于或小于某个值,从而得到一个新的结果。下面我们先来用numpy包构造一个全是数字的DataFrame...

weixin_34624426的博客 1495

深度学习赋能胶囊内镜:AI如何实现胃肠道出血的自动检测与分割

在计算机视觉领域,图像分类与目标检测是处理医学影像分析的核心技术。其原理在于通过卷积神经网络(CNN)自动学习图像中的多层次特征表示,实现对特定目标的识别与定位。这项技术的价值在于能够将医生从海量、重复的阅片工作中解放出来,提升诊断效率与一致性,尤其在处理如胶囊内镜产生的数万张连续图像时优势显著。其应用场景广泛覆盖了医学影像的辅助诊断,例如在消化内科,对胃肠道出血的早期发现与精准定位具有重要临床意义。本文聚焦于利用深度学习模型,如U-Net和EfficientNet,构建一个能够从复杂多变的胶囊内镜图像中,

weixin_42533910的博客 387

Numpy,Pandas和matplotlib的知识点总结

Numpy 1. 数组的基本属性 data.shape 了解数组的结构 data.dtype 了解数组的数据类型 2.创建数组 np.array([1,2,3,4,5,6]) data1 = [[1,2,3],[4,5,6]] np.array(data1) np.zeros([3,4]) np.ones([5,6]) np.arange(6) #创建一个从0到5的数组 np.arange...

Rookie_zhangshilin的博客 954

CCS TMSC6748 报错Error connecting to the target: (Error -600 @ 0x0)

CCS TMSC6748 报错Error connecting to the target:(Error -600@ 0x0)

AS_the_deer1717的博客 6637

制作 img系统镜像的详细方法

      I.MX6开发板目前支持从TF卡和eMMC启动,启动时,由于各个不同的启动文件对路径有不同的要求,例如uboot文件要求位于启动设备的某个块,dtb文件要求在FAT分区上,文件系统要求在Linux分区上,基于此,我们目前采用将映像制作成img文件的方式,这样可以更简单完成对启动卡的制作。 关于如何制作img,方法如下:方法一  Windows下面利用Win32工具1.   准备我司提供...

armkits的博客 4万+

Pandas库基础知识(一)

1 Series 数据结构 1.1 Series 介绍 Series 是一种类似于一维数组的对象,由一组数据和一组数据标签(索引值)组成。 1.2 Series 的操作 1.2.1 创建Series对象 通过Series()方法创建对象,也可以直接将列表、字典等序列类型转换成Series数据 import pandas as pd s1=pd.Series(["a","b","c","d","e","f"]) s2=pd.Series([1,2,3,4,5,6],index=["a","b","c","d

- 3万+

NVIDIA Jetson之远程控制软件NoMachine安装使用

参考:https://www.bilibili.com/video/BV1cg4y1i776?t=12 0 背景

ZONGXP的博客 1万+

Pandas知识点超全总结

详细介绍pandas模块

Itsme_MrJJ的博客 1万+

AI智能体实战:从LangChain到多智能体协作的自动化新范式

在人工智能技术快速发展的今天,大语言模型(LLM)已成为推动自动化变革的核心驱动力。其原理在于通过深度学习海量文本数据,使模型能够理解、生成自然语言并执行推理任务。这一技术进步催生了AI智能体(AI Agent)这一新兴概念,它赋予自动化系统自主决策和动态规划能力,从而突破了传统脚本和RPA工具在固定流程上的局限。从技术价值看,AI智能体框架通过封装LLM调用、工具集成与流程编排,显著降低了构建复杂人机协同应用的开发门槛。在实际应用场景中,智能体尤其擅长处理信息调研、内容创作辅助、数据分析等需要处理非结构化

weixin_33730836的博客 773

【OpenClaw企业级智能体实战】第10篇:医疗行业OpenClaw实战:病历自动书写、医保智能审核与患者随访管理(附HIPAA合规配置+完整代码)

医疗行业正面临“效率提升需求”与“合规监管红线”的双重矛盾:病历书写占据医生30%-50%工作时间,医保审核效率低下,患者随访工作量巨大,但医疗数据“不出域”“责任不转移”的要求又限制了AI落地。本文基于华为云、腾讯云安全规范及中关村科金、复旦大学附属中山医院等真实实践,拆解OpenClaw在医疗场景的五大核心应用(病历自动书写、医保智能审核、患者随访管理、科研文献综述、医学影像预处理),提供私有化部署架构、HIPAA合规配置模板、完整实操流程及可直接运行的代码。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 441

pandas replace函数使用小结

语法:replace(self, to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None) 使用方法如下: import numpy as np import pandas as pd df = pd.read_csv('emp.csv') df #Series对

每天进步一点点2017 8万+

Android 9.0 SystemUI禁用长按recent键的分屏功能

​ 在9.0的系统产品开发中,系统对于多窗口模式默认会有分屏功能的,但是在某些产品中,需要禁用分屏模式,所以需要在导航栏中 禁用长按recent的分屏模式功能,接下来分析下相关分屏模式的实现 ​

安卓兼职framework和app工程师的博客 451

Pandas使用小结

目录一、引言二、基本使用方法i.pandas数据类型ii.DataFrame的属性a)列修改b)行修改iii.DataFrame的访问方式 一、引言 终于放假了,又可以抽出时间来写点博客,这一学期本来以为有数字图像处理的课程,可以在图像处理方面学点理论知识,没想到只是个入门科普性质的课程,虽然有点干货稍微把零散的知识点串了起来,但落实到具体的理论基础也只是一笔带过。阴差阳错的帮老师做了些数据处理和筛选的工作,算是Pandas的重度使用患者了,本篇博客就来记录一下Pandas的基本使用、 常用函数、和某些偏门

罟霖同学的站点 1660

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Pandas基础知识

本篇内容为笔者学习pandas库时在网上搜集、整理的信息,主要目的在于帮助和我一样的初学者更为方便地找到详细且通俗易懂的pandas资料。所有内容均来源于网络,如有错误之处欢迎评论、留言讨论,笔者会及时修改错误。如有侵权烦请联系笔者删除,谢谢!

weixin_44002014的博客 4006

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Pandas Indexing小结

ContentSingle Index 的dataframeslice object[ ] 的理解 Single Index 的dataframe 对于Single Index 的dataframe :主要参照Indexing and Selecting Data 章节 我是黑体字 color=#0099ff size=72 face=“黑体” color=#00ffff color=gray ...

twt9628的博客 1187

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Pandas入门知识学习

目录Pandas基础知识学习一、数据处理对象Pandas中的数据结构SeriesDataFrame二、读取CSV格式数据读取CSV查看前n行查看后n行修改列名三、排序操作对索引进行排序按行排序按值排序四、删除操作五、基本的算术运算算术运算(+,-,*,/)六、去重操作duplicated()drop_duplicates()七、层次化索引层次化索引索引方式内层选取数据重塑 Pandas基础知识学习 Pandas比较适合处理结构化的数据,如序列数据,表格数据等,例如csv文件,利用pandas可以快速的对数据

weixin_45588852的博客 2226

Pandas知识总结(1)

pandas中的语法,函数的学习

2401_87876529的博客 1872

pandas知识点

Pandas 是 Python 语言的一个扩展程序库,用于数据分析Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。

2401_83623637的博客 887

pandas merge小结

文章目录pandas mergepd.mergeDataFrame.join小结 pandas merge merge 是 DataFrame之间类似于SQL的表连接操作, pandas 本身提供了 pd.merge的方法完成连接, 同时DataFrame(Series不存在此方法)也提供了join方法完成连接, 本文主要分析一下两种方法的异同. pd.merge DataFrame.join 小结 ...

Allocator的优快云博客 570

Python关于pandas的基础知识

而 pandas 是在 NumPy 的基础上构建的,它不仅继承了 NumPy 对数值型数据的处理能力,还扩展了对字符串、日期等多种数据类型的支持,能更好地应对复杂的结构化数据处理场景。pandas 是 Python 的一个第三方数据处理库,它提供了高效、灵活的数据结构(如 Series 和 DataFrame),能方便地对结构化数据进行清洗、转换、分析和处理。这些行业需要对大量的财务数据、交易数据、市场数据等进行编排、统计和分析计算,借助 pandas 能快速完成复杂的数据处理任务,提高工作效率和准确性。

2501_91237346的博客 984

pandas的10个方面的小结

df.pivot_table(index=col1, values=[col2,col3], aggfunc=max):创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表。df.index = pd.date_range('1900/1/30', periods=df.shape[0]):增加一个日期索引。s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3。

u013060489的博客 572

pandas用均值填充nan_Pandas学习笔记(三)

前言学习Pandas的最好方式就是多用它,只有在实际中多用,才能更好地掌握其中的技巧,这一次我们从数据的聚合来开始。GroupBy的使用聚合的意思指的是对数据框架中某一类型的数据进行整合,在整合后可以对其进行求和、求平均值等操作,下面举例说明:对上面创建的数据框架按公司进行分类,求各公司的人均销售额:再来统计一下各公司出现的次数:请注意,在用count统计的时候,groupby是按哪列分...

weixin_39866966的博客 337

pandas库的使用【知识整理】

pandas库的使用(基础)综述代码模块读取csv类型文件的内容显示数据及数据类型添加变量数据排序 综述 学生党整理一些关于数据分析的知识:主要整理了pandas库内一些函数的用法及一些数据预处理的方式(以two.csv和titanic_train.csv数据为例子)。包括了读取csv文件中的数据、显示文件中数据及数据属性的一些方式、向数据集中添加新的变量数据、排序、计算均值 代码模块 读取csv...

Droke_Zhou的博客 3826

Pandas 重要知识点总结

1.已知考试成绩占总成绩的60%,而平时的成绩占总成绩的40%,那么请你们帮忙算一算各位同学各个科目的最终成绩。df['总成绩'] = df['考试成绩'] * 0.6 + df['平时成绩'] * 0.4。:二维表格型数据结构,含行索引和列索引,每列可不同数据类型。df.fillna(df.mean()) # 用列均值填充。2.计算每个同学的平均分以及每个科目的平均分。3.计算每个同学的最高分以及每个科目的最高分。:结合权重计算、多维度统计(如学生成绩分析)。:一维带标签数组,类似表格中的一列。

Y20030916的博客 738

Pandas知识点总结

pd.DataFrame(data,index,columns,dtype):创建一个DataFrame。pd.Series(data,index,dtype):创建一个Series。df.head(n):查看DataFrame前n行,默认为前5行。df.tail(n):查看DataFrame后n行,默认为后5行。df.index:获取DataFrame的索引。df.columns:获取DgtgFrgme的列名。

blueside_的博客 947
上一篇: numpy知识总结
下一篇: 人脸属性编辑-课程笔记
回眸- instan
博客等级 码龄6年 25粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值