数据分析利器--Pandas
发布日期:2021-07-01 04:21:21
浏览次数:10
分类:技术文章
本文共 2421 字,大约阅读时间需要 8 分钟。
1、前言
pandas是python数据分析中一个很重要的包;
在学习过程中我们需要预备的知识点有:DataFrame、Series、NumPy、NaN/None;2、预备知识点详解
- NumPy详解:标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间。NumPy的诞生弥补了这些不足,NumPy提供了两种基本的对象:ndarray(N-dimensional array object)和 ufunc(universal function object)。ndarray是存储单一数据类型的多维数组,而ufunc则是能够对数组进行处理的函数。(参考:)
- Series: Series是一个一维的类似的数组对象,包含一个数组的数据(任何NumPy的数据类型)和一个与数组关联的数据标签,被叫做 索引。(参考:)
- DataFrame:一个Datarame表示一个表格,类似电子表格的数据结构,包含一个经过排序的列表集,它们每一个都可以有不同的类型值(数字,字符串,布尔等等)。Datarame有行和列的索引;它可以被看作是一个Series的字典(每个Series共享一个索引)。与其它你以前使用过的(如R 的 data.frame)类似Datarame的结构相比,在DataFrame里的面向行和面向列的操作大致是对称的。在底层,数据是作为一个或多个二维数组存储的,而不是列表,字典,或其它一维的数组集合。因为DataFrame在内部把数据存储为一个二维数组的格式,因此你可以采用分层索引以表格格式来表示高维的数据。(参考:)
- NaN/None: python原生的None和pandas, numpy中的numpy.NaN尽管在功能上都是用来标示空缺数据。但它们的行为在很多场景下确有一些相当大的差异。(参考:)
3、pandas详解
3.1 简介:
pandas是一个Python语言的软件包,在我们使用Python语言进行机器学习编程的时候,这是一个非常常用的基础编程库。pandas提供了快速,灵活和富有表现力的数据结构,目的是使“关系”或“标记”数据的工作既简单又直观。它旨在成为在Python中进行实际数据分析的高级构建块。
3.2 pandas的安装:
pip install pandas
3.3 核心数据结构
pandas最核心的就是Series和DataFrame两个数据结构。
名称 | 维度 | 说明 |
---|---|---|
Series | 1维 | 带有标签的同构类型数组 |
DataFrame | 2维 | 表格结构,带有标签,大小可变,且可以包含异构的数据列 |
DataFrame可以看做是Series的容器,即:一个DataFrame中可以包含若干个Series。更详细的解释参考:
3.4 读取CSV文件
data = pd.read_csv("fileName.csv")
read_csv()中可以用的参数:
参数 | 说明 |
---|---|
path | 文件路径 |
sep或者delimiter | 字段分隔符 |
header | 列名的行数,默认是0(第一行) |
index_col | 列号或名称用作结果中的行索引 |
names | 结果的列名称列表 |
skiprows | 从起始位置跳过的行数 |
na_values | 代替NA的值序列 |
comment | 以行结尾分隔注释的字符 |
parse_dates | 尝试将数据解析为datetime。默认为False |
keep_date_col | 如果将列连接到解析日期,保留连接的列。默认为False。 |
converters | 列的转换器 |
dayfirst | 当解析可以造成歧义的日期时,以内部形式存储。默认为False |
data_parser | 用来解析日期的函数 |
nrows | 从文件开始读取的行数 |
iterator | 返回一个TextParser对象,用于读取部分内容 |
chunksize | 指定读取块的大小 |
skip_footer | 文件末尾需要忽略的行数 |
verbose | 输出各种解析输出的信息 |
encoding | 文件编码 |
squeeze | 如果解析的数据只包含一列,则返回一个Series |
thousands | 千数量的分隔符 |
3.5处理无效值
这里需要掌握三个函数:
pandas.isna(): 判断哪些值是无效的 pandas.DataFrame.dropna(): 抛弃无效值 pandas.DataFrame.fillna(): 将无效值替换成为有效值 具体用法参照:4、Pandas常用函数
函数 | 用法 |
---|---|
DataFrame.duplicated() | DataFrame的duplicated方法返回一个布尔型Series,表示各行是否重复行。 |
DataFrame.drop_duplicates() | 它用于返回一个移除了重复行的DataFrame |
DataFrame.fillna() | 将无效值替换成为有效值 |
5、Pandas常用知识点
5.1 Dataframe写入到csv文件
df.to_csv('D:\\a.csv', sep=',', header=True, index=True)
第一个参数是说把dataframe写入到D盘下的a.csv文件中,参数sep表示字段之间用’,’分隔,header表示是否需要头部,index表示是否需要行号。
5.2 Dataframe写入到数据库中
df.to_sql('tableName', con=dbcon, flavor='mysql')
第一个参数是要写入表的名字,第二参数是sqlarchmy的数据库链接对象,第三个参数表示数据库的类型,“mysql”表示数据库的类型为mysql。
转载地址:https://mtyjkh.blog.csdn.net/article/details/80731668 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月15日 10时31分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
switch多选择结构
2021-06-28
计算1+2+3+...+100
2021-06-28
用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
2021-06-28
学习的总结
2021-06-28
学习的总结
2021-06-28
66天街欢抢节 北京长安天街 6.5-6.6
2021-06-28
武田中国创新挑战赛重磅启动,诚邀初创企业共赴数字医疗之途
2021-06-28
九巨龙集团安全大检查行动,践行“客户满意工程”牢筑安全防线!
2021-06-28
最好吃的8款粽子,看看有没有你家乡的!
2021-06-28
端午前后湿热当道,这些祛湿的好方法一定要收好
2021-06-28
最好吃的8款粽子,看看有没有你家乡的!
2021-06-28
端午前后湿热当道,这些祛湿的好方法一定要收好
2021-06-28
九巨龙集团被授予“2020年全市疫情防控慈善捐助企业楷模”
2021-06-28
清徐老陈醋签约盒马与数字乡村特色新品战略合作
2021-06-28
视听·封报丨5G发展带来哪些改变?“虚拟偶像”成为追星新潮流
2021-06-28
最好吃的8款粽子,看看有没有你家乡的!
2021-06-28
第10届上海尚品家居展实力来袭,优质生产型企业加持核心优势
2021-06-28
丁磊:高合汽车下个月交付过千,刷新纪录
2021-06-28
2021乌拉盖旅游推介会暨“爱上草原”云平台发布仪式
2021-06-28
博仲兴业力作——《爱的雨季》讲述爱情的奥秘
2021-06-28