"""
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
"""
相关推荐
CMAC算法原理
2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;
pandas 在某个列表中的值 筛选列_Pandas学习笔记(二)
前言上一篇研究了如何构建一个Pandas的Series和DataFrame,之后对DataFrame的行列选择及增加删除行为进行了探索,这一节将从如何对DataFrame进行条件选择开始。条件选择DataFrame中的条件选择指的是这样一回事,比如对某个全为数字的列,我们可以通过指定该列大于或小于某个值,从而得到一个新的结果。下面我们先来用numpy包构造一个全是数字的DataFrame...
深度学习赋能胶囊内镜:AI如何实现胃肠道出血的自动检测与分割
在计算机视觉领域,图像分类与目标检测是处理医学影像分析的核心技术。其原理在于通过卷积神经网络(CNN)自动学习图像中的多层次特征表示,实现对特定目标的识别与定位。这项技术的价值在于能够将医生从海量、重复的阅片工作中解放出来,提升诊断效率与一致性,尤其在处理如胶囊内镜产生的数万张连续图像时优势显著。其应用场景广泛覆盖了医学影像的辅助诊断,例如在消化内科,对胃肠道出血的早期发现与精准定位具有重要临床意义。本文聚焦于利用深度学习模型,如U-Net和EfficientNet,构建一个能够从复杂多变的胶囊内镜图像中,
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...
CCS TMSC6748 报错Error connecting to the target: (Error -600 @ 0x0)
CCS TMSC6748 报错Error connecting to the target:(Error -600@ 0x0)
制作 img系统镜像的详细方法
I.MX6开发板目前支持从TF卡和eMMC启动,启动时,由于各个不同的启动文件对路径有不同的要求,例如uboot文件要求位于启动设备的某个块,dtb文件要求在FAT分区上,文件系统要求在Linux分区上,基于此,我们目前采用将映像制作成img文件的方式,这样可以更简单完成对启动卡的制作。 关于如何制作img,方法如下:方法一 Windows下面利用Win32工具1. 准备我司提供...
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
NVIDIA Jetson之远程控制软件NoMachine安装使用
参考:https://www.bilibili.com/video/BV1cg4y1i776?t=12 0 背景
Pandas知识点超全总结
详细介绍pandas模块
AI智能体实战:从LangChain到多智能体协作的自动化新范式
在人工智能技术快速发展的今天,大语言模型(LLM)已成为推动自动化变革的核心驱动力。其原理在于通过深度学习海量文本数据,使模型能够理解、生成自然语言并执行推理任务。这一技术进步催生了AI智能体(AI Agent)这一新兴概念,它赋予自动化系统自主决策和动态规划能力,从而突破了传统脚本和RPA工具在固定流程上的局限。从技术价值看,AI智能体框架通过封装LLM调用、工具集成与流程编排,显著降低了构建复杂人机协同应用的开发门槛。在实际应用场景中,智能体尤其擅长处理信息调研、内容创作辅助、数据分析等需要处理非结构化
【OpenClaw企业级智能体实战】第10篇:医疗行业OpenClaw实战:病历自动书写、医保智能审核与患者随访管理(附HIPAA合规配置+完整代码)
医疗行业正面临“效率提升需求”与“合规监管红线”的双重矛盾:病历书写占据医生30%-50%工作时间,医保审核效率低下,患者随访工作量巨大,但医疗数据“不出域”“责任不转移”的要求又限制了AI落地。本文基于华为云、腾讯云安全规范及中关村科金、复旦大学附属中山医院等真实实践,拆解OpenClaw在医疗场景的五大核心应用(病历自动书写、医保智能审核、患者随访管理、科研文献综述、医学影像预处理),提供私有化部署架构、HIPAA合规配置模板、完整实操流程及可直接运行的代码。
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对
Android 9.0 SystemUI禁用长按recent键的分屏功能
在9.0的系统产品开发中,系统对于多窗口模式默认会有分屏功能的,但是在某些产品中,需要禁用分屏模式,所以需要在导航栏中 禁用长按recent的分屏模式功能,接下来分析下相关分屏模式的实现
Pandas使用小结
目录一、引言二、基本使用方法i.pandas数据类型ii.DataFrame的属性a)列修改b)行修改iii.DataFrame的访问方式 一、引言 终于放假了,又可以抽出时间来写点博客,这一学期本来以为有数字图像处理的课程,可以在图像处理方面学点理论知识,没想到只是个入门科普性质的课程,虽然有点干货稍微把零散的知识点串了起来,但落实到具体的理论基础也只是一笔带过。阴差阳错的帮老师做了些数据处理和筛选的工作,算是Pandas的重度使用患者了,本篇博客就来记录一下Pandas的基本使用、 常用函数、和某些偏门
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
Pandas基础知识
本篇内容为笔者学习pandas库时在网上搜集、整理的信息,主要目的在于帮助和我一样的初学者更为方便地找到详细且通俗易懂的pandas资料。所有内容均来源于网络,如有错误之处欢迎评论、留言讨论,笔者会及时修改错误。如有侵权烦请联系笔者删除,谢谢!
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 ...
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可以快速的对数据
Pandas知识总结(1)
pandas中的语法,函数的学习
pandas知识点
Pandas 是 Python 语言的一个扩展程序库,用于数据分析Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据Pandas 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。
pandas merge小结
文章目录pandas mergepd.mergeDataFrame.join小结 pandas merge merge 是 DataFrame之间类似于SQL的表连接操作, pandas 本身提供了 pd.merge的方法完成连接, 同时DataFrame(Series不存在此方法)也提供了join方法完成连接, 本文主要分析一下两种方法的异同. pd.merge DataFrame.join 小结 ...
Python关于pandas的基础知识
而 pandas 是在 NumPy 的基础上构建的,它不仅继承了 NumPy 对数值型数据的处理能力,还扩展了对字符串、日期等多种数据类型的支持,能更好地应对复杂的结构化数据处理场景。pandas 是 Python 的一个第三方数据处理库,它提供了高效、灵活的数据结构(如 Series 和 DataFrame),能方便地对结构化数据进行清洗、转换、分析和处理。这些行业需要对大量的财务数据、交易数据、市场数据等进行编排、统计和分析计算,借助 pandas 能快速完成复杂的数据处理任务,提高工作效率和准确性。
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。
pandas用均值填充nan_Pandas学习笔记(三)
前言学习Pandas的最好方式就是多用它,只有在实际中多用,才能更好地掌握其中的技巧,这一次我们从数据的聚合来开始。GroupBy的使用聚合的意思指的是对数据框架中某一类型的数据进行整合,在整合后可以对其进行求和、求平均值等操作,下面举例说明:对上面创建的数据框架按公司进行分类,求各公司的人均销售额:再来统计一下各公司出现的次数:请注意,在用count统计的时候,groupby是按哪列分...
pandas库的使用【知识整理】
pandas库的使用(基础)综述代码模块读取csv类型文件的内容显示数据及数据类型添加变量数据排序 综述 学生党整理一些关于数据分析的知识:主要整理了pandas库内一些函数的用法及一些数据预处理的方式(以two.csv和titanic_train.csv数据为例子)。包括了读取csv文件中的数据、显示文件中数据及数据属性的一些方式、向数据集中添加新的变量数据、排序、计算均值 代码模块 读取csv...
Pandas 重要知识点总结
1.已知考试成绩占总成绩的60%,而平时的成绩占总成绩的40%,那么请你们帮忙算一算各位同学各个科目的最终成绩。df['总成绩'] = df['考试成绩'] * 0.6 + df['平时成绩'] * 0.4。:二维表格型数据结构,含行索引和列索引,每列可不同数据类型。df.fillna(df.mean()) # 用列均值填充。2.计算每个同学的平均分以及每个科目的平均分。3.计算每个同学的最高分以及每个科目的最高分。:结合权重计算、多维度统计(如学生成绩分析)。:一维带标签数组,类似表格中的一列。
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的列名。
1659



被折叠的 条评论
为什么被折叠?



