GVKun编程网logo

在Pandas Python中读取XLSB文件(pandas读取xlsx)

22

这篇文章主要围绕在PandasPython中读取XLSB文件和pandas读取xlsx展开,旨在为您提供一份详细的参考资料。我们将全面介绍在PandasPython中读取XLSB文件的优缺点,解答pa

这篇文章主要围绕在Pandas Python中读取XLSB文件pandas读取xlsx展开,旨在为您提供一份详细的参考资料。我们将全面介绍在Pandas Python中读取XLSB文件的优缺点,解答pandas读取xlsx的相关问题,同时也会为您带来pandas读取xlsx、python pandas不从csv文件中读取第一列、Python xlrd 读取xls文件、python – Pandas在没有标题的表中读取的实用方法。

本文目录一览:

在Pandas Python中读取XLSB文件(pandas读取xlsx)

在Pandas Python中读取XLSB文件(pandas读取xlsx)

对此有很多问题,但是对于如何将xlsb文件读入熊猫还没有简单的答案。是否有捷径可寻?

答案1

小编典典

随着1.0.0pandas-的发布,January 29, 2020增加了对二进制Excel文件的支持。

import pandas as pddf = pd.read_excel(''path_to_file.xlsb'', engine=''pyxlsb'')

笔记:

  • 您将需要升级熊猫- pip3 install pandas --upgrade
  • 您将需要安装pyxlsb-pip3 install pyxlsb

pandas读取xlsx

pandas读取xlsx

一、使用pandas读取xlsx

  引用pandas库

import pandas as pd
pd.read_excel(path, sheet_name=0, header=0, names=None, index_col=None, 
              usecols=None, squeeze=False,dtype=None, engine=None, 
              converters=None, true_values=None, false_values=None, 
              skiprows=None, nrows=None, na_values=None, parse_dates=False, 
              date_parser=None, thousands=None, comment=None, skipfooter=0, 
              convert_float=True, **kwds)

pandas读取Excel后返回DataFrame;

二、解析pd.read_excel()的常用参数

1.path --> xlsx的存储路径(建议使用英文路径或者英文命名方式)

import pandas as pd
path = r''D:\Testdatabase\data\data.xlsx''

2.sheet_name --> 读取工作表(sheet)名称

sheet_name:None代表读取所有的sheet,返回的就是一个ordereddict;指定就只读取指定sheet,只有一个返回的就是dataframe

# 整型数字、列表名、SheetN、或者是以上三组组合列表

# 整型数字:目标sheet所在位置,以0开始,比如sheet_name = 0代表第1个工作表
data = pd.read_excel(path, sheet_name = 1)
ss = data.head()
print(ss)
# 工作表名:目标sheet的名称,可用中英文 data = pd.read_excel(path, sheet_name = ''账号密码'') data.head() # SheetN:表示第N个sheet,S必须大写,注意与整型数字的区别使用 data = pd.read_excel(path, sheet_name = ''Sheet5'') data.head() # 组合使用 # sheet_name = [0, ''车辆信息'', ''Sheet4''],代表读取三个工作表,分别为第1个工作表、名为“车辆信息”的工作表和第4个工作表。显然,Sheet4未经重命名。 # sheet_name 默认为0,取Excel第一个工作表。如果读取多个工作表,则显示表格的字典 data = pd.read_excel(path, sheet_name = [''账号密码'', ''车辆信息''], nrows = 5) # sheet_name = [''账号密码'', ''车辆信息''] ,返回两个工作表组成的字典 data.head()

3.header --> 指定前几行作为列名(指定数据表的表头,默认值为0,即将第一行作为表头。)

# 默认[0],即首行作为列名,设置为[0,1],即表示将前两行作为多重索引
data = pd.read_excel(path, sheet_name = ''车辆信息'', header = [0,1]) 
# 前两行作为列名。
data.head()
data = pd.read_excel(path, sheet_name = ''车辆信息'', header = [0,1,2]) 
# 前三行作为列名
data.head()

4.names --> 自定义列名

# 一般适用于Excel缺少列名,或者需要重新定义列名的情况
# 注意:names的长度必须和Excel列长度一致,否则会报错
data = pd.read_excel(path, sheet_name = ''英超射手榜'', 
                     names = [''car_plate'',''sim_num'',''club'',''goal'',''common_goal'',''penalty''])
data.head()

5.index_col --> 用作索引的列

# 可以是工作表列名称,如index_col = ''车牌号'';
data = pd.read_excel(path, sheet_name = ''车辆信息'', index_col = ''车牌号'')
data.head()

# 可以是整型或整型列表,如index_col = 0 或 [0, 1],如果选择多个列,则返回多重索引
data = pd.read_excel(path, sheet_name = ''车辆信息'', index_col = [0, 1])
data.head()

6.usecols --> 读取指定的列

# usecols 可避免读取全量数据,而是以分析需求为导向选择特定数据,可以大幅提高效率
# 使用整型,从0开始,如[0,2,3]
data = pd.read_excel(io, sheet_name = ''车辆信息'', usecols = [0, 1, 2])  # 想要读取第一列、第二列、和第三列的数据
data.head()

# 可以使用Excel传统的列名“A”、“B”等字母,如“A:C, E” ="A, B, C, E",注意两边都包括
data = pd.read_excel(path, sheet_name = ''车辆信息'', usecols = ''A:C, E'')
data.head()

7.squeeze --> 当工作表只有一列

# squeeze为True时,返回Series,反之返回DataFrame
data = pd.read_excel(path, sheet_name = ''新增车组名'', squeeze  = True)
data.head()

data = pd.read_excel(path, sheet_name = ''新增车组名'', squeeze  = False)
data.head()

8.skiprows --> 跳过特定行

# skiprows= n, 跳过前n行; skiprows = [a, b, c],跳过第a+1,b+1,c+1行(索引从0开始)
# 使用skiprows 后,有可能首行(即列名)也会被跳过。
data = pd.read_excel(path, sheet_name = ''新增车组名'', skiprows = [1,2,3]) 
# 跳过第2,3,4行数据(索引从0开始,包括列名)
data.head()

# 跳过前三行
data = pd.read_excel(io, sheet_name = ''新增车组名'', skiprows = 3)
data.head()

9.nrows --> 读取指定行数

# 读取指定行数, nrows = 10 ,即读取10行数据
data = pd.read_excel(path, sheet_name = ''新增车组名'', nrows = 10)
data.head()

10.skipfooter --> 跳过末尾N行

data = pd.read_excel(path , sheet_name = ''新增车组名'', skipfooter = 18)
#  skipfooter = 18, 跳过末尾0-18行(索引从0开始)
data.head()

11.converters --> 强制规定列数据类型

读数据的时候使用converters指定列数据的数值类型 pd.read_excel(''a.xlsx'',converters={0: str})

pandas默认将文本类的数据读取为整型),主要用途:保留以文本形式存储的数字

 三、常用操作

1.找到指定的一列,并在这一列中进行比较

data[''gender''][data[''gender''] == ''male''] = 0
data[''gender''][data[''gender''] == ''female''] = 1

2.保存

pd.DataFrame(data).to_excel(path, sheet_name=''Sheet1'', index=False, header=True)

3.新增列数据

data[''列名称''] = None
# 值为None(默认值)时,只有列名,没有数据
data[''profession''] = None

4.新增行数据

# 这里的N为excel自动给行加的序号
data.loc[N] = [值1, 值2, ...]
# 比如我在第5行新增
data.loc[5] = [''James'', 32, ''male'']

5.删除一列或者删除一行

# 删除gender列,需要指定axis为1,当删除行时,axis为0
data = data.drop(''gender'', axis=1)

# 删除第3,4行,这里下表以0开始,并且标题行不算在类
data = data.drop([2, 3], axis=0)

6.遍历指定列的所有行

data = pd.read_excel(path,sheet_name="sheet1")
for i in data[''列名'']:
    print(i)
    print(i,type(i))  # type(i) 数据类型,这里的i为字符串
    print(i.split('' '')) # 字符串转列表
    values=pd.DataFrame(i.split('' ''), columns=[''新增车组名''])  # 列表转DataFrame
    print(values)

7.自动填充、排序、计算、数据过滤、筛选

https://blog.csdn.net/u013089490/article/details/91422685

 

python pandas不从csv文件中读取第一列

python pandas不从csv文件中读取第一列

我有一个简单的2列csv文件,名为st1.csv:

GRID    St1  1457    614  1458    657  1459    679  1460    732  1461    754  1462    811  1463    748

但是,当我尝试读取csv文件时,未加载第一列:

a = pandas.DataFrame.from_csv(''st1.csv'')  a.columns

输出:

 Index([u''ST1''], dtype=object)

为什么不读取第一列?

答案1

小编典典

根据您的数据判断,看起来您正在使用的分隔符是``。

请尝试以下操作:

a = pandas.DataFrame.from_csv(''st1.csv'', sep='' '')

另一个问题是,假设您的第一列是索引,我们也可以禁用它:

a = pandas.DataFrame.from_csv(''st1.csv'', index_col=None)

Python xlrd 读取xls文件

Python xlrd 读取xls文件



# -*- coding: utf-8 -*- 
import sys
import xlrd

from string import Template

def open_excel(file= ''file.xls''):
    try:
        data = xlrd.open_workbook(file)
        return data
    except Exception,e:
        print str(e)
#根据索引获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的所以  ,by_index:表的索引
def excel_table_byindex(file= ''file.xls'',colnameindex=0,by_index=0):
    data = open_excel(file)
    table = data.sheets()[by_index]
    nrows = table.nrows #行数
    ncols = table.ncols #列数
    colnames =  table.row_values(colnameindex) #某一行数据 
    list =[]
    for rownum in range(1,nrows):

         row = table.row_values(rownum)
         if row:
             app = {}
             for i in range(len(colnames)):
                app[colnames[i]] = row[i] 
             list.append(app)
    return list

#根据名称获取Excel表格中的数据   参数:file:Excel文件路径     colnameindex:表头列名所在行的所以  ,by_name:Sheet1名称
def excel_table_byname(file= ''file.xls'',colnameindex=0,by_name=u''Sheet1''):
    data = open_excel(file)
    table = data.sheet_by_name(by_name)
    nrows = table.nrows #行数 
    colnames =  table.row_values(colnameindex) #某一行数据 
    list =[]
    for rownum in range(1,nrows):
         row = table.row_values(rownum)
         if row:
             app = {}
             for i in range(len(colnames)):
                app[colnames[i]] = row[i]
             list.append(app)
    return list

def main():
   tables = excel_table_byindex()
   for row in tables:
       print row

   tables = excel_table_byname()
   for row in tables:
           print row
       
def run():
    filepath = unicode(r"E:\workspace\doc\代码修改\各网点联系方式.xls", ''utf-8'').encode("cp936")
    tables = excel_table_byindex(file=filepath)
    temp = Template(''<option value="$name">$name</option>'')
    for row in tables:
        d = dict(name=row.get(row.keys()[1]).encode("utf-8"))
        print temp.safe_substitute(d)


if __name__=="__main__":
    # main()
    run()



python – Pandas在没有标题的表中读取

python – Pandas在没有标题的表中读取

我如何读取.csv文件(没有标题),当我只想要一个列的子集(比如总共20列中的第4和第7列)时,使用pandas?我似乎无法做usecols

解决方法

为了读取没有标题的csv而且只有某些列,你需要传递params header = None和usecols = [3,6]作为第4和第7列:

df = pd.read_csv(file_path,header=None,usecols=[3,6])

见docs

关于在Pandas Python中读取XLSB文件pandas读取xlsx的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于pandas读取xlsx、python pandas不从csv文件中读取第一列、Python xlrd 读取xls文件、python – Pandas在没有标题的表中读取等相关知识的信息别忘了在本站进行查找喔。

本文标签: