python数据分析的一些基础性知识(一)

人工智能26

1、pandas中的数据读写

文本文件是由若干行字符构成的计算机文件,csv是一种用分隔符分隔的文件格式,相对简单,比较通用,是以纯文本形式存储表格数据(数字和文本),应用于程序之间转移表格数据。

pandas中提供了两种函数来读取文本文件,分别是read_csv()和read_table()
常用参数:
filepath(文件路径)
sep(分隔符,csv默认为",",table默认为"Tab")
文本文件存储和读取类似,对于结构化数据,可以通过函数to_csv()实现
常用参数:
path_or_buf(代表文件路径,无默认)
sep(代表分隔符,默认为",")

对Excel文件的读取通过函数read_excel('文件路径')来实现
对Excel文件的存储通过函数to_exel('存储路径')来实现

读取函数:
read_sql_table()——只能读取数据库的某一个表格,没有查询功能
read_sql_query()——只能实现查询功能,不能直接读取数据库中的某个表
read_sql()————上两者结合,既能实现读取功能,又能实现查询功能
存储函数:
to_sql('数据库表名')

2、DataFrame的常用操作

DataFrame的基础属性有values(元素)、index(索引、行名)、columns(列名)、dtypes(类型),除了这四个基础属性外,还有size、ndim可以获取DataFrame的元素个数和维度数。

访问DataFrame中的数据有两种办法,第一种是使用字典访问内部数据的方式访问DataFrame单列数据,即使用函数detail['id'],id指所要访问的那一列,第二种是使用访问属性的方式访问DataFrame单列数据,为detail.id,id指所要访问的那一列。但使用第二种方法会引起程序混乱,也会使得代码晦涩难懂,因此不建议使用第二种方法。下面一个表格是使用detail['id']访问DataFrame不同数据的不同表现形式。此外还有head()函数、tail()函数是专门用来DataFrame前n行或后n行数据的。

要求代码(index_name:行名)举例获取单列多行数据detail['id_name][:n]获取id列前五行的数据——detail['id'][:5]获取多列多行数据detail['id_name1', 'id_name2'][m:n]获取id1列和id2列,第1~8行的数据—————————detail['id1', 'id2'][1:8]获取多行数据(所有列)detail[:][m:n]获取第1~8行的数据——detail[:][1:8]获取前n行数据detail.head(n)(n默认5)获取前6行的数据——detail.head(6)获取后n行数据detail.tail(n)(n默认5)获取后6行的数据——detail.tail(6)

更改函数:detail.loc[detail['order_id'] == 'change','order_id']='bianhua'
loc()函数在下面会有描述,change代表需要更改的信息,bianhua代表的是更改之后的信息。需要注意,更改之后不能撤销。
增加函数:detail['新加列名']='要增加的数据',新加列的数据还可以用原有的数据进行计算。例如
detail['payment'] = detail['counts'] * detail['amounts']
删除函数:drop('要删除的列或行索引'),

删除某列detail.drop(labels='pay',axis=1,inplace=True)删除m~n行detail.drop(labels=range(m:n),axis=0,inplace=True)

loc()和iloc()函数可以更加灵活地实现数据访问
DataFrame.loc[行索引名称或条件, 列索引名称]
DataFrame.iloc[行索引位置, 列索引位置]
二者的区别在于[ ]内添加的元素不一样。

要求loc()释义iloc()释义单列切片detail.loc(:, 'id')提取id列的数据detail.iloc(:, 6)提取第6列的数据多列切片detail.loc(:, ['id1', 'id2'])提取id1列和id2的数据detail.iloc(:, [1, 6])提取第1~6列的数据花式切片detail.loc(6, ['id1', 'id2'])提取第6行 id1列和id2的数据detail.iloc(6, [2,4])提取行位置为6,列位置为2和4的数据detail.loc(2:6, ['id1', 'id2'])提取第2~6行 id1列和id2的数据detail.iloc(2:6, [2,4])提取行位置为2~6,列位置为2和4的数据条件切片detail.loc(detail['id1']=='123', ['id1', 'id2'])提取id1为123的id1、id2数据detail.iloc(detail['id1'=='123', [1,5]])提取id1为123的第1、5列数据

以上detail都是作者所设置的DataFrame数据,类似于test的意思。

缺失值处理:
寻找:info()或isnull()
info()函数直接可以看到哪一列有多少缺失值,但并不能看到缺失值的具体位置。
isnull()函数把原数据转换成一个只有True和False的数据表,True代表不缺失,False代表此处缺失值,可以比较直观地看到整个数据表中缺失值的位置。运用isnull().sum()函数,就能得到类似于info()函数得到的统计表,但更加简单明了。
丢弃:dropna()
填充:fillna()或interpolate()
fillna({'需要处理的列':'赋的新值'})
还有一种新办法,运用loc()函数,即loc[detail['修改的列'].isnull(), '赋的新值']
链接: 缺失值处理.他这个讲的比较详细,我就直接贴链接了。
重复值处理:
寻找:duplicated()函数,效果类似于上述info()函数。
处理重复行:当两行数据完全重复时,使用drop_duplicates()函数,无需设置任何参数,即可删除后面重复的行,即若第6行与第8行重复,运行drop_duplicates()函数,第8行就会被删掉。
处理重复值:默认保留第一个重复值所在的行,删除其他重复值所在的行。可以利用drop_duplicates()函数的参数keep来自定义删除重复值时保留哪个重复值所在的行。
例如:将参数keep设置为'first',表示保留第一个重复值所在的行,如果要保留最后一个重复值所在的行,则将参数keep设置为'last'。还可以将参数keep设置为False,表示把重复值一个不留地全部删除。

2、numpy描述分析DataFrame数据

数字特征的描述性统计主要包括对数字数据的完整情况、最小值、平均值、中位数、最大值等的计算。

[En]

The descriptive statistics of numerical characteristics mainly include the calculation of the complete situation of numerical data, minimum value, mean value, median, maximum value and so on.

函数名称说明函数名称说明np.min最小值np.max最大值np.mean均值np.ptp极差np.median中位数np.std标准差np.var方差np.cov协方差

Original: https://blog.csdn.net/weixin_43072872/article/details/123493895
Author: WiningQ
Title: python数据分析的一些基础性知识(一)

相关文章
opencv-python安装 人工智能

opencv-python安装

文章目录 前言 一、安装opencv-python库 二、opencv模块架构 * 1.模块 2.实例运行 总结 前言 OpenCV就是学习计算机视觉的过程中经常用到的工具,opencv降低了计算机视...
智能车中的PID控制 人工智能

智能车中的PID控制

智能车中的PID控制 文章目录 智能车中的PID控制 * - 1.简介 2.位置式pid 3.增量式pid 4.总结 1.简介 小车程序处理对于数据的处理可简化成这样,其中单片机就是小车的核心。 他单...
51单片机——蓝牙远程点灯 人工智能

51单片机——蓝牙远程点灯

一、HC-05蓝牙模块 HC-05是主从一体的蓝牙串口模块,使用起来非常之方便,当HC-05与其他蓝牙设备连接成功后,使用方法与串口没什么差别,当然HC-05要跟你的单片机串口连接起来。简单画画原理说...
对工作分配问题的求解 人工智能

对工作分配问题的求解

工作分配问题是一个典型的回溯问题,利用回溯思想能很准确地得到问题的解。我们就针对如下一个案例做一个系统的分析: 问题描述 有 (n) 份工作要分配给 (n) 个人来完成,每个人完成一份。第 (i) 个...
ML Collections的介绍(一) 人工智能

ML Collections的介绍(一)

在看一篇论文的源码时,看到import ml_collections这行代码,系统报错,经过寻找之后发现并不是源码中的一个文件,之后感觉应该是一个深度学习的安装包,然后就在网上搜索这个包的安装过程,却...