python pandas库统计分析基础必备知识汇总(三)

简介: python pandas库统计分析基础必备知识汇总(三)

3.pandas读取文件

3.1read_excel()

3.1.1准备数据

import pandas as pd
id = ['xx1', 'xx2', 'xx3', 'xx4', 'xx5']
df = pd.DataFrame({
   
    'name': ['aaa', 'bbb', 'ccc', 'ddd', 'eee'],
    'age': [18, 20, 21, 22, 19],
    'gender': ['male', 'female', 'male', 'female', 'female'],
    'class': ['A', 'B', 'B', 'A', 'A']
}, index=id)
# 保存为excel文件
df.to_excel('data.xlsx')

3.1.2默认方式读取

read_excel()读取excel文件得到的DataFrame,

  • index值默认为0,1,2,3…
  • 列名默认为excel中的第一行数据
df = pd.read_excel('data.xlsx')
print(df)

在这里插入图片描述

3.1.3设置index_col参数

df1 = pd.read_excel('data.xlsx', index_col=0)
print(df1)

如图,通过index_col=0,将下标为0的列作为索引进行读取。
在这里插入图片描述

3.1.4设置header参数

header可以设置列名,默认为0表示首行即列名,

  • 如图通过 header=1,将下标为1行作为了列名(第二行)
df2 = pd.read_excel('data.xlsx', header=1)     # 设置第1行为列索引
print(df2)

在这里插入图片描述

  • 当header参数为None时,表示列名为数字0,1,2,3…
df3 = pd.read_excel('data.xlsx', header=None)  
print(df3)

在这里插入图片描述

3.1.5设置usecols参数

通过usecols参数,传入列位置或标签列表,可以导出指定列

  • 传入一个位置
df1 = pd.read_excel('data.xlsx', usecols=[1])                  # 通过指定列索引号导入第1列
print(df1)

在这里插入图片描述

  • 传入多个位置
df2 = pd.read_excel('data.xlsx', usecols=[1, 3])
print(df2)

在这里插入图片描述

  • 传入多个标签
df3 = pd.read_excel('data.xlsx', usecols=['name', 'age'])
print(df3)

在这里插入图片描述

3.1.6设置sheet_name参数以指定工作簿

可以通过read_excel()的sheet_name参数传入工作簿名称。
如:

import pandas as pd
df = pd.read_excel('data_name.xlsx', sheet_name='sheetA')
df1 = df.head()   # 输出前5条数据

3.1.7解决数据输出时列名不对齐的问题

使用命令

pd.set_option(‘display.unicode.east_asian_width’, True)

import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
df = pd.read_excel('data.xlsx')

3.2read_csv()

3.2.1设置encoding参数

设置encoding参数可以指定编码方式,默认为None。
出现乱码的时候可以使用。

import pandas as pd
df = pd.read_csv('data.csv', encoding='gbk')            # 导入csv文件,并指定编码格式
print(df.head())   

3.2.2设置sep参数指定分隔符

sep默认为",",表示分隔符默认为逗号。
根据数据的具体情形,设置不同的分隔符,下例中读取了分隔符为\t的txt文本文件。

import pandas as pd
df1 = pd.read_csv('1月.txt', sep='\t', encoding='gbk')
df1 = df1.head()

3.3read_html()小案例

3.3.1pd.read_html()方法

使用pandas的read_html()方法,只需要传入url,可以获取到相应的网页源码中的表格数据,返回的数据格式为一个列表

3.3.2DataFrame的append()方法

此外可以对DataFrame对象使用append方法将满足一定格式(形似一个表格)的列表数据添加到其中,ignore_index=True可以忽略掉该list对象中数据的索引列,而将索引设为默认的0,1,2…,避免了多个list对象的索引重复的问题。以该案例为例:

以网站http://www.espn.com/nba/salaries/_/seasontype/4等为例,获取此网站及其他11页的表格数据,并保存为csv文件。

3.3.3pd.to_csv()方法

  • header 表头,传入形式为一个列表,默认为数据第一行
  • index=False 忽略索引
    在这里插入图片描述
import pandas as pd
df = pd.DataFrame()
url_list = ['http://www.espn.com/nba/salaries/_/seasontype/4']
for i in range(2, 13):
    url = 'http://www.espn.com/nba/salaries/_/page/%s/seasontype/4' % i
    url_list.append(url)


# 遍历网页中的table读取网页表格数据
for url in url_list:
    df = df.append(pd.read_html(url), ignore_index=True)
# 通过观察,df中第三个数据都是以$开头的,除了重复出现的标题数据。以以$开头为筛选条件,去除冗余数据。
df = df[[x.startswith('$') for x in df[3]]]
df.to_csv('NBA.csv', header=['RK', 'NAME', 'TEAM', 'SALARY'], index=False)

在这里插入图片描述

目录
相关文章
|
4月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
387 0
|
4月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
578 0
|
5月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
1044 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
5月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
457 0
|
7月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据
|
4月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
421 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
4月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
442 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
6月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
419 18
|
6月前
|
机器学习/深度学习 API 异构计算
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
JAX是Google开发的高性能数值计算库,旨在解决NumPy在现代计算需求下的局限性。它不仅兼容NumPy的API,还引入了自动微分、GPU/TPU加速和即时编译(JIT)等关键功能,显著提升了计算效率。JAX适用于机器学习、科学模拟等需要大规模计算和梯度优化的场景,为Python在高性能计算领域开辟了新路径。
591 0
JAX快速上手:从NumPy到GPU加速的Python高性能计算库入门教程
|
6月前
|
数据采集 存储 Web App开发
Python爬虫库性能与选型实战指南:从需求到落地的全链路解析
本文深入解析Python爬虫库的性能与选型策略,涵盖需求分析、技术评估与实战案例,助你构建高效稳定的数据采集系统。
534 0

热门文章

最新文章

推荐镜像

更多