Python使⽤pandas读取excel
了解了Series和dataframe的基本数据结构和索引的相关概念之后,就可以练习基本的excel操作。panda
s读取⼀个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名对象。
print(df.keys())
print('---------------')
lumns)
结果
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。
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
####读取excelpython怎么读取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].list())
###所有sheet页转为list,⼀个sheet页⼀个list,放在data_np这个⼤list⾥
data_list=[df[sheet_name].list() for sheet_name in total_sheet]
###第⼀页数据为空分隔不同系统的列
null_list=[index for index,value in enumerate(data_list[0]) if '' in value]
print(data_list[6])

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。