Python使用pandas读取excel

Python使用pandas读取excel

了解了Series和dataframe的基本数据结构和索引的相关概念之后,就可以练习基本的excel操作。pandas读取一个excel文件后会将其转化为DataFrame对象,每一列或行就是一个Series对象,本节课我们看下如何整体的了解一个excel,比如查看一个excel的行数、列数、表头、前几行、后几行。下面用代码依次展示。

; 1)获取行数:df.index

pandas会默认给一个excel文件的行设置数字索引,从0开始算;如果一个excel多个列的行数不同则按照行数最多的那一列计算。

\# -*- coding: utf-8 -*-

import pandas as pd

df = pd.read_excel('kwd.xlsx')

print(df.index) # 行索引

RangeIndex(start=0, stop=3747, step=1)
2)同时获取行数和列数:df.shape

输出元祖,分别为行数和列数,默认第一行是表头不算行数。

\# -*- coding: utf-8 -*-

import pandas as pd

df = pd.read_excel('kwd.xlsx')

print(df.shape)

(3747, 4)
3)获取表头:df.columns、df.keys()

默认是把excel的第一行当成表头来显示。注意:如果read_excel的sheet_name参数设为None,则df.keys()的结果是所有sheet名对象。

\# -*- coding: utf-8 -*-

import pandas as pd

df = pd.read_excel('kwd.xlsx')

print(df.keys())

print('---------------')

print(df.columns)

结果

Index([9, '上海', '地铁站', '富锦路租房'], dtype='object')

\---------------

Index([9, '上海', '地铁站', '富锦路租房'], dtype='object')
4)获取所有sheet:df.keys()
\# -*- coding: utf-8 -*-

import pandas as pd

\# 参数为None 代表读取所有sheet

df = pd.read_excel('kwd_city.xlsx',sheet_name=None)

\# 获取所有sheet名字

\# 如果read_excel参数不是None,则df.keys()为表头

sheet_names = list(df.keys())

print(sheet_names)

结果

['北京', '杭州', '天津', '上海', '南京', '苏州', '成都', '太原', '南宁', '郑州', '无锡', '武汉', '青岛', '长沙', '南昌', '常州']
5)前几行后几行

df.head(n) 数据框的前n行,会显示索引

df.tail(n) 数据框的后n行,会显示索引

\# -*- coding: utf-8 -*-

import pandas as pd

df = pd.read_excel('kwd.xlsx')

print(df.head(3))

print('----------------')

print(df.tail(3))
6)详细信息:df.info()

df.info()直接输出详细信息,返回值None。

\# -*- coding: utf-8 -*-

import pandas as pd

df = pd.read_excel('kwd.xlsx')

df.info()

结果

RangeIndex: 3747 entries, 0 to 3746

Data columns (total 4 columns):

9 3747 non-null int64

上海 3747 non-null object

地铁站 3747 non-null object

富锦路租房 3747 non-null object

dtypes: int64(1), object(3)

memory usage: 117.2+ KB
读取所有sheet并且读取行数和列数 不包含表头
import pandas as pd

df = pd.read_excel(r'C:\Users\Pert\Desktop\项目要求与资料提供\运动报告\运动指标.xlsx',sheet_name=None)
total_sheet=df.keys()
print('sheet个数:{}'.format(len(total_sheet)))

for sheet_name in total_sheet:
    structure=df[sheet_name].shape
    print('{}的行数为:{},列数为:{}'.format(sheet_name,structure[0],structure[1]))
实例demo
####读取excel
import pandas as pd
import numpy as np

#keep_default_na空字符读取出来就不是nan了,header=None第一行也读取 不作为表头
df = pd.read_excel('res.xlsx',sheet_name=None,header=None,keep_default_na=False)

#获取sheet名字的列表
total_sheet=df.keys()

#打印sheet页数
print('sheet个数:{}'.format(len(total_sheet)))

data_np=[]

for sheet_name in total_sheet:
  ###打印每个sheet页的结构

  structure=df[sheet_name].shape
  # print('{}的行数为:{},列数为:{}'.format(sheet_name,structure[0],structure[1]))

  #.values将DataFrame转为numpy  .tolist() 将numpy转为list
  data_np.append(df[sheet_name].values.tolist())

###所有sheet页转为list,一个sheet页一个list,放在data_np这个大list里
data_list=[df[sheet_name].values.tolist() for sheet_name in total_sheet]

###第一页数据为空分隔不同系统的列
null_list=[index for index,value in enumerate(data_list[0]) if '' in value]

print(data_list[6])

Original: https://blog.csdn.net/s_frozen/article/details/120737307
Author: Pert-
Title: Python使用pandas读取excel

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/750865/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • UserWarning: findfont: Font family [‘sans-serif‘] not found. Falling back to DejaVu Sans

    matplotlib中文乱码问题解决 系统环境Ubuntu 18.04.4 LTS,利用Anconda配置Python虚拟环境,使用matplotlib画图,中文图注,字体SimH…

    Python 2023年9月3日
    0102
  • 【网络安全】记一次APP登录爆破

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年9月15日
    047
  • kubernetes调度

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Python 2023年6月3日
    0137
  • python中保存列表和字典

    (1)保存为 .npy 文件: 先将列表转为 np.array,再进行保存 import numpy as np graphTable = [ [[0,3],[1,3],1,’1’…

    Python 2023年8月27日
    057
  • matplotlib耗时_Matplotlib提速(翻译)

    原文: https://bastibe.de/2013-05-30-speeding-up-matplotlib.html​bastibe.de 2013年5月30日 郑重声明,M…

    Python 2023年9月4日
    072
  • Python:线性回归方差分析

    方差分析可以用来推断一个或多个因素在其状态变化时,其因素水平或交互作用是否会对实验指标产生显著影响。主要分为单因素方差分析、多因素无重复方差分析和多因素重复方差分析。 线性回归: …

    Python 2023年8月7日
    085
  • 基于Numpy和python面向对象浅尝试——成绩单的运算

    最近在学python面向对象 正好也在学数据分析与可视化 正好就拿题目来练练手 题目要求是输出对应的几个值 出于挑战,这里想要写一个类来完成对这类成绩单的处理,让其对其他的类似成绩…

    Python 2023年8月25日
    058
  • Django案例:显示图书信息

    ### 回答1: 武沛齐是一位知名的技术博主和 Python_开发者,他在技术领域有着丰富的经验和深厚的技术功底。他对于 _Django_源码的理解和解读也相当深刻。 首先, _D…

    Python 2023年8月5日
    064
  • 利用Python实现批量压缩文件

    def do_zip_compress(dirpath): print("原始文件夹路径:" + dirpath) output_name = f"{…

    Python 2023年11月1日
    085
  • 前端无法渲染CSS文件

    问题描述: 启动前端后,发现前端的页面渲染不符合预期,看情况应该是css文件没有生效。 排查步骤: 查看有无报错信息。 查看后台输出,没有可用的提示信息,如图: 确认 css 的路…

    Python 2023年10月17日
    078
  • React实现一个简易版Swiper

    背景 最近在公司内部进行一个引导配置系统的开发中,需要实现一个 多图轮播的功能。到这时很多同学会说了,”那你直接用 swiper不就好了吗?”。但其实是,因…

    Python 2023年10月17日
    070
  • 【Pandas 数据分析 5-1】Pandas高级操作

    在数据分析和数据建模的过程中需要对数据进行清洗和整理等工作,有时需要对数据增删字段。本章将介绍Pandas对数据的复杂查询、数据类型转换、数据排序、数据的修改、数据迭代以及函数的使…

    Python 2023年8月16日
    058
  • python pandas读取csv指定行_python pandas获取csv指定行 列的操作方法

    pandas获取csv指定行,列 house_info = pd.read_csv(‘house_info.csv’) 1:取行的操作: house_inf…

    Python 2023年8月19日
    061
  • 基于Proteus,Arduino,Flask搭建的智能大棚管理系统

    基于Proteus,Arduino,Flask搭建的智能大棚管理系统 ✨博主介绍 智能大棚监测管理系统简介 * 主要内容 采用的工具 系统简介 需求分析和概要设计 * 需求分析 概…

    Python 2023年8月9日
    087
  • 使用matplotlib绘制多种图形

    matplotlib 1、常用统计图对比 1、折线图:以折线的上升或下降来表示统计数量的增减变化的统计图 ​ 特点:能够显示数据的变化趋势,反映事物的变化情况。(变化) 2、直方图…

    Python 2023年8月31日
    077
  • python实现打飞机小游戏

    实验效果: fight airplane 游戏需要资源和源码我都发布在GitHub上了,需要自取: https://github.com/Anzhiruosure/python-g…

    Python 2023年9月18日
    062
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球