gdjlc

培养良好的习惯,每天一点一滴的进步,终将会有收获。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

Pandas是python的一个数据分析包,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

Pandas官方文档:https://pandas.pydata.org/pandas-docs/stable/

一、安装包

pandas处理Excel需要xlrd、openpyxl依赖包

pip3 install pandas
pip3 install xlrd
pip3 install openpyxl

二、创建Excel,写入数据

import  pandas  as pd
from pandas import DataFrame

#创建DataFrame可以用下面字典,也可以用数组ndarray
dic1 = {'标题列1': ['张三','李四'],
        '标题列2': [80, 90]
       }
df = pd.DataFrame(dic1)
df.to_excel('1.xlsx', index=False)

read_excel方法说明

pd.read_excel(io, 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)

io:excel文件

sheet_name:返回指定sheet,默认索引0返回第一个,也可用名称,如果返回多个则可用列表,为None则返回全表

header:指定表头,也可用列表指定多行

names:自定义列名,长度和Excel列长度必须一致

index_col:用作索引的列

usecols:读取指定的列,参数为列表,如[0,1]表示第1和第2列

三、读取Excel

import  pandas  as pd
from pandas import DataFrame

#
data = pd.read_excel('1.xlsx')

#查看所有的值
print(data.values)

#查看第一行的值
print(data.values[0])

#查看某一列所有的值
print(data['标题列1'].values)

#新增列
data['标题列3'] = None

#新增行
data.loc[3] = ['王五', 100, '']

#删除行:axis=0
data = data.drop([0,1], axis=0)

#删除列:axis=1
data.drop('标题列3', axis=1)

#保存
DataFrame(data).to_excel('1.xlsx', sheet_name='Sheet1', index=False, header=True)

 四、其它实例

1、批量转换.xls文件为.xlsx文件

import os
import  pandas  as pd
from pandas import DataFrame

def xlsToXlsx(srcPath, destPath):
    """srcPath路径的所有.xls文件,用.xlsx格式保存于destPath路径"""
    for filename in os.listdir(srcPath):
        filePath = os.path.join(srcPath,filename)
        if not filename.endswith(".xls"):
            continue        
        xlsxPath =  destPath + '\\' + filename + 'x'        
        data = pd.DataFrame(pd.read_excel(filePath))
        data.to_excel(xlsxPath, index=False)

srcPath = r'D:\python\xls'
destPath = r'D:\python\xlsx'
xlsToXlsx(srcPath, destPath)

2、同一格式的多个Excle文件,合并到一个Excel文件中

例如把左边2个Excel合并成右边1个Excel

 

import os
import  pandas  as pd
from pandas import DataFrame
import numpy as np

def excelMerge(srcPath, destPath):
    """同种格式的Excel文件合并"""
    fileList = [] #所有Excel文件列表
    for filename in os.listdir(srcPath):
        filePath = os.path.join(srcPath,filename)
        if not filename.endswith(".xlsx"):
            continue
        fileList.append(filePath)

    resultData = pd.read_excel(fileList[0]) #第一个Excel文件数据
    colName = resultData.columns.values #Excel文件标题

    fileList.pop(0) #列表中删除第一个文件

    for filepath in fileList:
        fileData = pd.read_excel(filePath)
        resultData = np.concatenate((resultData, fileData), axis=0) #合并Excel数据

    df = pd.DataFrame(resultData, columns = colName)
    df.to_excel(destPath, index=False) #保存


srcPath = r'D:\python\xlsx'
destPath = r'D:\python\list.xlsx'
excelMerge(srcPath, destPath)

 

posted on 2019-08-25 22:52  gdjlc  阅读(71819)  评论(2编辑  收藏  举报