天天看点

pandas 取excel 中的某一列_Excel快速分表(xlwings+pandas)

Excel总表快速分表:

  1. step1: 读取exel数据到DataFrame
  2. step2: dataframe中数据进行筛选
  3. step3:将筛选完的数据存储到excel中
  4. 工作中应用实例

step1:读取Excel的数据到pandas 的Dataframe

方法1:采用pandas,读取sheet1的内容到

import pandas as pd
excel_file = pd.ExcelFile(data_name)
data = excel_file.parse('Sheet1')
           

方法2:采用xlwings读取shee1的内容到Dataframe

import xlwings as xw
import pandas as pd

wb=xw.Book("d:/test.xlsx")
sht=wb.sheets['sheet1']
data=sht.range('A1').options(pd.DataFrame,header=1,index=False,expand='table').value
           

step2:dataframe中数据进行筛选

原始表:

pandas 取excel 中的某一列_Excel快速分表(xlwings+pandas)

筛选出姓名为刘春雷的:

newdata =data[data['姓名'] == 刘春雷]
           

step3:将新data存储到新的excel中

方法1:使用pandas将数据写入到excel中

writer = pd.ExcelWriter('d:/test2.xlsx')
newdata.to_excel(writer, "sheet1", index=False)
writer.save()
           

运行结果

pandas 取excel 中的某一列_Excel快速分表(xlwings+pandas)

方法2:使用xlwings将数据写入到excel中

app1=xw.App(visible=False,add_book=False)#不打开excel
wb=app1.books.add()
sht=wb.sheets.add('sheet_姓名')
sht.range('A1').value=newdata
wb.save("d:/test3.xlsx")
wb.close()
           

运行结果

pandas 取excel 中的某一列_Excel快速分表(xlwings+pandas)

应用场景:

未完待续....

其他:

Pandas 操作excel常用操作

读取excel数据到dataframe
import pandas as pd
#读取excel数据到dataframe
df=pd.read_excel('d:/test.xlsx')
           
查看所有列名
df.columns
           
增加列
#删除列
df.drop('新增列',axis=1,inplace=True)
           
选择1列
#选择一列
df['姓名']
#方法2
df.loc[:,[’姓名‘]]
#方法3
df.iloc[:,0]
           
选择多列
#选取多列 注意这里两个[[]]
df[['姓名','年龄']]
#方法2
df.loc[:,['姓名','年龄']]
           
筛选列 取出age>30的列
df[df['age'] > 3]
           
获得行数列数
#行数、列数
df.shape[0]
df.shape[1]
           
选择第1行
df.iloc[0,:]:返回第一行
df.iloc[0,0]:返回第一列的第一个元素
           
排序操作
df.sort_values(col1):按照列col1排序数据,默认升序排列
df.sort_values(col2, ascending=False):按照列col1降序排列数据
df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数
           
保存到excel
writer = pd.ExcelWriter('d:/test2.xlsx')
newdata.to_excel(writer, "sheet1", index=False)
writer.save()
           

参考:

  1. 通过xlwings读取数据到pandas的dataframe

A whole sheet into a panda dataframe with xlwings​stackoverflow.com

pandas 取excel 中的某一列_Excel快速分表(xlwings+pandas)

2. xlwings官网 quick start

Quickstart - xlwings dev documentation​docs.xlwings.org

3. 站在巨人的肩上,思路参考的下面的链接

zzh:python 把excel的总表 拆分成对应的分表​zhuanlan.zhihu.com

pandas 取excel 中的某一列_Excel快速分表(xlwings+pandas)

4.xlwings 常用操作

朱卫军:xlwings,让excel飞起来!​zhuanlan.zhihu.com

pandas 取excel 中的某一列_Excel快速分表(xlwings+pandas)

继续阅读