python 提取excel的某几列的数据,
提取3个列的数据。3个列的数据生成了3个列表。每个列表里面有1000个数据。
我需要把这3个数据按照每个100行切割生成10个excel文件。
3个列的数据按100行数切割生成excel文件。
import pandas as pd
file_name = r"new.xlsx"
df = pd.read_excel(file_name)
columns = ["a","c","e"]
df = df[columns]
print(df)
for i in range(10):
df_tmp = df[i*100:(i+1)*100]
df_tmp.to_csv("{}_{}.csv".format(file_name,i))
https://blog.csdn.net/qq_42738639/article/details/93381989 如果你搜索一下 csdn,就会发现这个博客以及其它很多文章。
能使用 xlrd,xlsxwriter这2个库写吗?
按指定列读取数据,再按设定行数输出为excel,输出支持两种方式,一是,每列按行数生成excel,一是,所有列按行数生成excle。
import xlrd
import xlwt
def read(fileName,sheetname,columnList):
'''
读取exel
fileName:excel文件名
sheetname:分栏名
columnList: 分栏列序号
'''
book = xlrd.open_workbook(fileName)#打开一个excel
sheet = book.sheet_by_name(sheetname) #book.sheet_by_index(0)#根据顺序获取sheet
data=[]
for one in columnList:
tmpData=sheet.col_values(one)
data.append(tmpData)
return data
# print(sheet.cell(0,0).value) #指定行列
# print(sheet.ncols)#获取excel里面有多少列
# print(sheet.nrows)#获取excel里面有多少行
# print(sheet.row_values(0))#获取第一行
# print(sheet.col_values(1))#取第一列的数据
# print(sheet.get_rows())#获取所有行数据
# for row in range(sheet.nrows): #获取行数
# if row==0:
# continue
# url=sheet.cell(row,0).value
# print(url)
def write(data,rowSzie,state=0):
'''
data:二维数据
rowSize:多少行拆成一个excel文件
state:根据rowSize,所有列合成一个excel, 0为false 1为true
'''
if state==0: #各列按行数独立输出为excle
for index,one in enumerate(data):
dataTmp=[]
for indexTmp,oneData in enumerate(one):
dataTmp.append(oneData)
if len(dataTmp)==rowSzie:
book = xlwt.Workbook()#新建一个excel
sheet = book.add_sheet("测试")#添加一个sheet页
for row,tmp in enumerate(dataTmp):
sheet.write(row,0,tmp)
book.save(str(indexTmp)+"-"+str(index)+".xls")
dataTmp=[]
else: #所有列合并后,按行数输出为excle
intLen=len(data)
data=map(list,zip(*data)) #行转列
dataTmp=[]
for index,one in enumerate(data):
dataTmp.append(one)
if len(dataTmp)==rowSzie:
book = xlwt.Workbook()#新建一个excel
sheet = book.add_sheet("测试")#添加一个sheet页
for index in range(rowSzie):
for lenIndex in range(intLen):
sheet.write(index,lenIndex,dataTmp[index][lenIndex])
book.save(str(index)+".xls")
dataTmp=[]
def deal():
file="./demo.xlsx"
data=read(file,"one",[0,1,2])
rowSzie=2
write(data,rowSzie,state=0)
if __name__ == "__main__":
deal()