pandas简单操作

1.pandas.read_excel()的作用:

将Excel文件读取到pandas DataFrame中,支持从本地文件系统或URL读取的xls,xlsx,xlsm,xlsb和odf文件扩展名。 支持读取单一sheet或几个sheet。
以下是该函数的全部参数,等于号后面是该参数的缺省值,参数看着很多,但其实我们日常用到的就几个:

pandas.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,
keep_default_na=True,
verbose=False,
parse_dates=False,
date_parser=None,
thousands=None,
comment=None,
skipfooter=0,
convert_float=True,
mangle_dupe_cols=True,
**kwds)

1.基本用法

import pandas as pd
df = pd.read_excel(r'C:\Users\16010\Desktop\1.xlsx')

默认读取第一个sheet的全部数据

2.sheet_name(str,int,list,None,default 0)

df = pd.read_excel(r'C:\Users\16010\Desktop\1.xlsx',sheet_name='学生表')

None表示引用所有的sheet

3.header(int,list of int ,defaut 0)

df = pd.read_excel(r'C:\Users\16010\Desktop\1.xlsx',header=0)

表示用第几行作为表头,默认header=0,表示第一行为表头
header=1表示第二行为表头,第一行数据就不要了
header=[1,2,3]表示选择第2,3,4行数据为表头
header=None表示不使用数据源中的表头

4.names(array-list,default None)
表示自定义表头的名称,需要传递数组参数

df = pd.read_excel(r'C:\Users\16010\Desktop\1.xlsx',names=['id','name'])

5.index_col(int,list of int,default None)
指定列为索引列,默认为None,也就是索引为0的列用作dataframe的行标签

df = pd.read_excel(r'C:\Users\16010\Desktop\1.xlsx',index_col=0

6.dtype
列的类型名称或字典,默认为none,也就是不改变数据类型
其作用是指定列的数据类型

df = pd.read_excel(r'C:\Users\16010\Desktop\1.xlsx',dtype={0:'float64',2:str)

7.skiprows
跳过指定的行
skiprows=1跳过第一行

df = pd.read_excel(r'C:\Users\16010\Desktop\1.xlsx',skiprows=1)

skiprows=3跳过前3行
skiprows=[1,2,4]跳过1,2,4行
skiprows=lambda x:x % 2 == 0跳过偶数行

8.nrows
默认为none
指定需要读取前多少行,通常用于较大的数据文件中

df = pd.read_excel(r'C:\Users\16010\Desktop\1.xlsx',nrows=3)

nrows=3读取前3行

9.na_values
指定某些列的某些值为NaN
na_values=‘大专’,指定大专为NaN

df = pd.read_excel(r'C:\Users\16010\Desktop\1.xlsx',na_values='大专')

2.pandas切片操作

import pandas

file = r'C:\Users\16010\Desktop\1.xlsx'

data = pandas.read_excel(file,header=None)
res = data[0] #第一列
print(res[2])

res = data.iloc[0]  # 第一行
res = data.iloc[0:3] # 第1到3行
print(res[2])

res = data.iloc[:,0] # 第一列
res = data.iloc[:,0:3] # 第1到第3列

res = data.iloc[1,0]  # 第2行第一列
res = data.iloc[[0,2],[1,3]]  # 1,3行和2,4列数据
res = data.iloc[0:3,2:4]  # 第1到3行和第3到4列数据


res = data.iloc[1,0]
print(res)

3.使用pandas进行读写单元格操作

Pandas提供了多种读写单元格的方法,下面列举了几个常用的方法:

  1. 读取单元格的值:

    import pandas as pd
    df = pd.read_excel('file.xlsx')
    cell_value = df.iloc[row_index, column_index]   #根据行列索引读取单元格的值
    cell_value = df.loc[row_label, column_label]    #根据行列标签读取单元格的值
    
  2. 修改单元格的值:

    df.iloc[row_index, column_index] = new_value   #根据行列索引修改单元格的值
    df.loc[row_label, column_label] = new_value    #根据行列标签修改单元格的值
    
  3. 写入单元格的值:

    writer = pd.ExcelWriter('file.xlsx')
    df.to_excel(writer, sheet_name='Sheet1', index=False, startrow=row_index, startcol=column_index)  #将DataFrame写入指定的单元格
    writer.save()
    

    注意:需要先创建一个ExcelWriter对象并指定文件名,然后使用to_excel方法将DataFrame写入Excel文件中的指定单元格。参数index指定是否包含行索引,startrowstartcol指定起始行列索引或标签。

例如:

 file = r'C:\Users\16010\Desktop\1.xlsx'

data = pandas.read_excel(file,header=None)
writer = pandas.ExcelWriter(r'C:\Users\16010\Desktop\2.xlsx')


def to_excel1(i):
    new_list = []
    # i为行,0为列
    res = data.iloc[i, 0]
    new_list.append(res)
    # 把list元素转为dataframe类型
    res1 = pandas.DataFrame(list(new_list))
    # startrow 开始行,startcol:开始列,index:不写索引,
    res1.to_excel(writer, startrow=i, startcol=0, index=False, header=None)
    # writer.save()


for i in range(1,100):
    to_excel1(i)

try:
    writer._save()
except:
    writer.save()

4.pandas进行行列操作

import pandas

import numpy as np


file = r'C:\Users\16010\Desktop\1.xlsx'

data = pandas.read_excel(file,header=None)
writer = pandas.ExcelWriter(r'C:\Users\16010\Desktop\2.xlsx')


def to_excel1():
    # i为行,0为列
    # 第2行到第100行和第2列的数据
    res = data.iloc[1:100,1:2]
    print(res)
    print(type(res))
    # startrow 开始行,startcol:开始列,index:不写索引,
    res.to_excel(writer, startrow=1, startcol=0, index=False, header=None)
    # res.to_excel(writer, startrow=1, startcol=1, index=False, header=None)


to_excel1()

try:
    writer._save()
except:
    writer.save()

5.pandas多文件读写行列

import pandas

file = r'C:\Users\16010\Desktop\1.xlsx'

# 读取的文件
read_list = [r'C:\Users\16010\Desktop\1.xlsx',r'C:\Users\16010\Desktop\2.xlsx',r'C:\Users\16010\Desktop\3.xlsx']
# 写入的文件
write_list = [r'C:\Users\16010\Desktop\4.xlsx',r'C:\Users\16010\Desktop\5.xlsx',r'C:\Users\16010\Desktop\6.xlsx']

# 读取数据
def read_excel1(read_file,write_file):
    data = pandas.read_excel(read_file,header=None)
    writer = pandas.ExcelWriter(write_file)
    return data,writer


# 写入数据
def to_excel1(data,writer,m,n):
    # i为行,0为列
    # 第2行到第100行和第2列的数据
    res = data.iloc[1:100,m:n]
    print(res)
    print(type(res))
    # startrow 开始行,startcol:开始列,index:不写索引,
    res.to_excel(writer, startrow=1, startcol=m, index=False, header=None)
    # res.to_excel(writer, startrow=1, startcol=1, index=False, header=None)


for i in range(len(read_list)):
    read_flie = read_list[i]
    write_file = write_list[i]
    res = read_excel1(read_flie,write_file)
    to_excel1(res[0],res[1],i,i+1)

    try:
        res[1]._save()
    except:
        res[1].save()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hobbies.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值