精华内容
下载资源
问答
  • python怎样按某一列拆分Excel表格

    千次阅读 2021-01-27 19:20:26
    本次以“按照表中的某一列,将一张表格拆分为多张表”的需求为例,简单介绍这个过程中用到的pd.ExcelWriter,及每一句的作用。 如上表《学生.xlsx》,假设有14万行28列,请按照学校名,拆分表格(不想用复制粘贴)...

    pd.ExcelWriter@python

    用python按某一列拆分Excel工作表,将内容写入一个工作簿

    本次以“按照表中的某一列,将一张表格拆分为多张表”的需求为例,简单介绍这个过程中用到的pd.ExcelWriter,及每一句的作用。

    表
    如上表《学生.xlsx》,假设有14万行28列,请按照学校名,拆分表格(不想用复制粘贴)。

    writer = pd.ExcelWriter(out_worksheet)

    writer对象的一大作用:让数据可以以工作表的分隔方式,不间断地写入工作簿,即得到一个包含多张工作表的工作簿。如果不用它,而是直接指定工作簿的路径,那么即使有循环,最终得到的结果还是只包含一个工作表的工作簿。

    代码及解释如下

    import pandas as pd
    from time import time#用来计算时间,展示进度,减少焦虑
    
    in_ws='学生.xlsx'#给出要拆的表名
    out_ws='学生-按学校拆分结果.xlsx'#给出结果工作簿的名称
    lie_name='学校'#给出拆分依据的列名
    
    #以上,参数给好了,下面开始拆
    start_time=time()#记住开始时间
    # ~~~~~~~~~这里路径按自己的需求改,我目前将表放在桌面~~~~~~~~~
    file='C:/Users/wowowo/Desktop/'+in_ws
    sheet_df = pd.read_excel(file,names=None)#用pandas读取表格内容(有时候会需要加一个参数:encoding="utf-8")
    # print(sheet_df.head())#可以查看数据是否读进来了,有无偏差
    out_worksheet = 'C:/Users/wowowo/Desktop/' + out_ws
    writer = pd.ExcelWriter(out_worksheet)
    #这一句的作用是:创建一个工作簿对象,后面to_excel()要用到这个对象writer;
    #如果你打印writer,得到的答案是:<pandas.io.excel._xlsxwriter._XlsxWriter object at 0x00000000027B0FA0>;
    #插一句:这个工作簿对象writer有save()和close()方法,在写完数据后,要调用二者
    #好像是只用save()就可以了,一旦用了save(),工作簿就关了,后面的数据就写不进去了!所以如果有循环,save()要写在循环外面
    #seve()和close()的相同之处:都会关闭工作簿,从而事实上阻止后面的数据写入工作簿(即:程序运行不提示错误,但是后面的数据没有写进工作簿);
    # 相同之二:save()、close()都只能用一次,如果把save()/close()写在循环里面,会提示:Calling close() on already closed file. 即:这个文件现在已经关掉啦,我没办法再关一次
    
    separatedDataList = list(sheet_df.groupby([lie_name]))
    #这一步非常关键,直接将待拆的表,按照指定的列分组,然后装进一个list;
    #sheet_df.groupby([lie_name])可以将数据按照lie_name(即学校)分组,但是给出的是个对象,并不是实际数据,如果要查看分组后的数据,目前就是把它list(),然后print(这个list)
    # 但是注意,列表中的元素都是tuple,如('实验高中',表格数据blabla  [2694rows x 28 columns])的形式,<class 'tuple'>;
    # 而tuple的元素是两个str,<class 'str'>,tuple第一个元素的长度是学校名字的长度(如实验高中则长4),第二个元素的长度是数据行数(如2694行则长2694)
    for separatedData in separatedDataList:
        separatedData[1].to_excel(writer, sheet_name=separatedData[0], index=False)
        now_time = time()
        used_time = (now_time - start_time) / 60
        print(separatedData[0], '已处理', len(separatedData[1]), '行,', '已用时:%.2f' % used_time, '分')
    writer.save()
    # writer.close()#save()与close()都可,二选一,但注意,不要写到for里面去了
    print('the end')
    

    好了。

    展开全文
  • Python按一列拆分Excel表格开篇先感谢一下老公(这是他要求的),感谢他帮我写了这Python。分享一拆表的代码。把下表按B列店铺拆成分表,在总表后面加几个分表,分表按店铺命名。做好的效果:VBA的代码太长,Python...

    Python

    按一列拆分

    Excel

    表格

    开篇先感谢一下老公(这是他要求的)

    ,感谢他帮我写

    了这

    Python

    分享一拆表的代码。

    把下表按

    B

    列店铺拆成分表,

    在总表后面加几个分表,

    分表按店铺命名。

    做好的效果:

    VBA

    的代码太长,

    Python

    很简洁,对比一下就可以看出来了。

    我在百度上找了一个拆表的

    VBA

    代码,修改了一点,可以

    达到上面的效果。

    VBA

    代码

    Python

    代码

    import pandas as pdimport

    xlsxwriterdata=pd.read_excel(r'C:\Users\Administrator\Desktop

    \hh\

    客户打款记录

    .xlsx',encode='gbk')area_list=list(set(data[u'

    店铺

    ']))writer=pd.ExcelWriter(r'C:\Users\Administrator\Desktop\hh\

    拆好的

    .xlsx',engine='xlsxwriter')data.to_excel(writer,sheet_name='

    总表

    ',index=False)for j in area_list:

    df=data[data[u'

    店铺

    ']==j]

    df.to_excel(writer,sheet_name=j,index=False)

    比较一下

    VBA

    Python

    Python

    是不是很简洁

    ?

    上面的英文

    很简单,能看懂英文的基本也能理解代码是什么意思。

    安装

    Anaconda

    展开全文
  • 表格拆分二个表格Often, you need to split the content of a cell in your spreadsheet that is separated by a comma or space, such as the first and last names of a contact. Luckily, Google Sheets ...
    一个表格拆分二个表格

    一个表格拆分二个表格

    Split Text Hero

    Often, you need to split the content of a cell in your spreadsheet that is separated by a comma or space, such as the first and last names of a contact. Luckily, Google Sheets provides a simple, straightforward approach to dealing with merged datasets.

    通常,您需要拆分电子表格中用逗号或空格分隔的单元格的内容,例如联系人的名字和姓氏。 幸运的是,Google表格提供了一种简单直接的方法来处理合并的数据集。

    如何在Google表格中拆分文本 (How to Split Text in Google Sheets)

    Fire up your browser, open up a Google Sheets document, and select all the cells you want to split up.

    启动浏览器,打开Google表格文档,然后选择要拆分的所有单元格。

    Select the cells you want to Split

    Warning: Make sure the cells to the right don’t already have data in them. This feature overwrites those cells without any warning.

    警告:确保右侧的单元格中没有数据。 此功能将覆盖这些单元,而不会发出任何警告。

    Next, click Data > Split Text Into Columns.

    接下来,单击数据>将文本拆分为列。

    Click Data > Split text into columns

    Sheets has a few common options to choose from when you split up data in your document, such as by comma, semicolon, full stop, and space. For this example, we’ll use “Space” as a separator, since there is a space between our datasets.

    在拆分文档中的数据时,Sheets有一些常用选项可供选择,例如,逗号,分号,句号和空格。 在此示例中,我们将使用“空格”作为分隔符,因为数据集之间存在空格。

    Click the drop-down menu, then choose “Space” from the list of delimiter options.

    单击下拉菜单,然后从定界符选项列表中选择“空格”。

    Click the drop-down menu and select Space from the list provided

    Immediately, the data is separated and placed into the column beside the original.

    立即将数据分离并放入原始数据旁边的列中。

    Immediately, Sheets separates the data into the cells on the right

    If your data separates by something other than the options provided, don’t worry. You can use the “Custom” option to specify any character you want.

    如果您的数据与提供的选项分开,请别担心。 您可以使用“自定义”选项指定所需的任何字符。

    When selecting a separator from the drop-down menu, choose “Custom” instead.

    从下拉菜单中选择分隔符时,请选择“自定义”。

    Select Custom from the drop-down menu if your data is separated by an uncommon character

    Then, in the provided text field, input the character(s)* you want to separate by in your datasets.

    然后,在提供的文本字段中,输入要在数据集中分隔的字符*。

    Type in the character and Sheets automatically filters it out

    *One caveat to this method is the inability to separate data if it contains two different characters. For that, you will need to use Sheet’s built-in SPLIT function, which we’ll cover down below.

    *此方法的一个警告是,如果包含两个不同的字符,则无法分离数据。 为此,您将需要使用Sheet的内置SPLIT函数,我们将在下面进行介绍。

    Voila! The custom separator removed all instances of “@” in your cells.

    瞧! 自定义分隔符删除了单元格中所有“ @”实例。

    Even special characters not listed can be removed from your data as well.

    如何使用分割功能分割文字 (How to Split Text Using the Split Function)

    While the previous feature only lets you specify an exact delimiter to separate, the SPLIT function lets you specify any number of them for a dataset. For example, let’s say your data is an email address and you want to extract the username, sub-domain, and top-level domain into three columns.

    尽管以前的功能仅允许您指定一个确切的分隔符,但SPLIT函数可以为数据集指定任意数量的分隔符。 例如,假设您的数据是一个电子邮件地址,并且要将用户名,子域和顶级域提取到三列中。

    Select an empty cell, type =SPLIT(G14, "@."), where “G14” is the starting cell. Hit Enter.

    选择一个空单元格,键入= SPLIT ( G14 , "@." ) ,其中“ G14”是起始单元格。 按下Enter键。

    Click an empty cell and type in =SPLIT(cell_with_data, "@.") and hit enter

    By default, each character of the delimiter in quotes is individually considered, unlike the previous method, which would look for “@.” in the string and return an unchanged dataset.

    默认情况下,与以前的方法将查找“ @”不同,引号中的分隔符的每个字符都是单独考虑的。 在字符串中,并返回未更改的数据集。

    Next, double-click the blue square to apply this function to the remaining cells.

    接下来,双击蓝色方块以将此功能应用于其余单元格。

    Double-click the blue square to apply the formal to the rest of the cells

    The function does its magic and neatly removes the separators from your data.

    该函数发挥了魔力,并巧妙地从数据中删除了分隔符。

    Voila! Like magic, the email addresses are separated


    That’s all there is to it. Now you can utilize the splitting power of Google Sheets to separate your data into different cells in your spreadsheet.

    这里的所有都是它的。 现在,您可以利用Google表格的拆分功能将数据分为电子表格中的不同单元格。

    翻译自: https://www.howtogeek.com/415512/how-to-split-text-in-google-sheets/

    一个表格拆分二个表格

    展开全文
  • 在日常工作中,我们经常会需要...输入基于该拆分的号,选择需要拆分的文件,即可拆分将原始表格拆分为多个表格!拆分后的表格名称正是以的内容来命名的!标题有合并单元格也可以实现!下面是实现代码: int

    在日常工作中,我们经常会需要将一个表格的数据拆分为多个表格以满足工作需要。如果只需要拆分成一两个那还好,手动筛选后新建复制就好了,但是一旦需要拆分的表格多达3个以上的时候,这样简单重复拆分表格的工作就会显得特别费力费时,这时候我们就需要一键操作!
    本文正是基于此需求,写了一个可以一键将原始表格根据列内容拆分成多个表格的小工具!输入基于该列拆分的列号,选择需要拆分的文件,即可拆分将原始表格拆分为多个表格!拆分后的表格名称正是以列的内容来命名的!标题有合并单元格也可以实现!下面是实现代码:

    					int c = Convert.ToInt32(textBox2.Text);
                        Microsoft.Office.Interop.Excel.Application excel = new ApplicationClass();
                        excel.ScreenUpdating = false; //停止工作表刷新
                        excel.DisplayAlerts = false;
                        Workbook workbook2 = excel.Workbooks.Open(filename[0]);
                        Worksheet sheet2 = (Worksheet)workbook2.ActiveSheet;
    
                        Dictionary<String, Range> dic = new Dictionary<String, Range>();
                        Range rng = sheet2.UsedRange;
                        int lColumn = rng.Columns.Count;//获得最大列数
                        int lRow = rng.Rows.Count;//获得最大行数
                        int b = Convert.ToInt32(TileLine);
                        b = b + 1;
                        for (int i = b; i < lRow+1; i++)
                        {
                            string h = sheet2.Range[sheet2.Cells[i, c], sheet2.Cells[i,c]].Text.ToString();
                            if (dic.ContainsKey(h))
                            {
                                dic[h] = excel.Union(dic[h], sheet2.Range[sheet2.Cells[i, 1], sheet2.Cells[i, lColumn]]);
                            }
                            else
                            {
                                dic.Add(h, sheet2.Range[sheet2.Cells[i, 1], sheet2.Cells[i, lColumn]]);
                            }
    
                        }
    
                        for (int i = 0; i < dic.Count; i++)
                        {
                            Workbook workbooknew = excel.Workbooks.Add(Type.Missing);
                            Worksheet sheetnew = (Worksheet)workbooknew.Sheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                            Range range;
                            range = (Range)sheetnew.Cells[sheetnew.Range["A65536", "A65536"].End[XlDirection.xlUp].Row, 1];
                            sheet2.Range[sheet2.Cells[1, 1], sheet2.Cells[b, lColumn]].Copy(range);
    
                            range = (Range)sheetnew.Cells[sheetnew.Range["A65536", "A65536"].End[XlDirection.xlUp].Row, 1];
                            Dictionary<String, Range>.KeyCollection key = dic.Keys;
                            dic[key.ElementAt(i)].Copy(range);
                            workbooknew.SaveAs(workbook2.Path + "\\" + key.ElementAt(i) + ".xls");
                            workbooknew.Close();
                        }
    
                        workbook2.Close();
                        excel.Quit();
                        PublicMethod.Kill(excel);//关闭excel进程
                        MessageBox.Show("success");
    

    实现:

    1.初始表格初始表格
    2.执行。输入表格的行数及拆分的列号输入标题总行数
    3.拆分后
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 背景:业务给了个大表格,里面几十万条数据,要拆分...Sub 按A区分内容并拆分到新表格() Dim i% arr = Sheets(1).[a1].CurrentRegion Set d = CreateObject("scripting.dictionary") For i = 2 To UBound(arr)
  • 如何将一个Excel表格根据其中一列的分类自动拆分到不同的SHEET表中.
  • 通过VB编辑器将一个表格中的多列数据按照第一二列,一三列,一四列的格式拆分成多个表格,现在的程序可以将每列拆分成一个表格,需要再带上第一列,有人知道怎么实现吗?
  • 表格拆分工具

    2014-03-30 16:00:18
    或行拆分表格建立子表格,属于高效办公工具
  • 请教各位大神如何用R语言、EXCEL或者其他数据分析软件将表格按时间这一列拆分成时间长度为5分钟的表格?要求能够实现自动将表格按5分钟来进行拆分,同时表格拆分后要能够从左到右按顺序排列。非常感谢! ![图片...
  • 1.df表格一列按内容拆分成多列 采用onehot拆分 df1 = pd.get_dummies(df_test['product_category']) df_test = pd.concat([df_test,df1],axis=1) for cg in range(1,19): df_test[cg] = df_test[cg]*df_test['...
  • python根据某一列内容拆分成多个excel

    千次阅读 2019-08-06 16:42:01
    python根据某一列内容拆分成多个excel 一个excel根据某一列内容分成多个excel 例如有如下文件内容 然后我需要按照城市来切分表格, 也就是将这一张表分成6个excel! 接下来开始为大家展示代码部分! 这部分代码会...
  • Excel套打程序使用操作说明 ...3、点击左数据源表格的第行,观察右边的数据标题对应 显示的是所在的标题 。 4、 点击右侧模版表格要填写数据的单元格,观察右边模版 目标单元格地址文本框显示的是想要...
  • 根据某一列拆分Excel为多个表格

    万次阅读 2018-03-02 23:00:24
    选择任何个该的单元格即可", Type:=8) Dim columnNumToSplit As Long columnNumToSplit = splitColumnRange.Column ' 需要拆分的值字典 Dim splitValueDict As Object ' 辅助字典用来保证顺序 Dim ...
  • 在处理表格数量时,有时候会遇到这样的需求,需要将一张表格,按照其中一列的值,分类拆分成若干个表格。 如下图,将按不同的部门,将这个表拆分成一个部门一个excel文件。 分类筛选,复制粘贴,纯手工打造,完全...
  • 根据dataframe某或多进行拆分,获得小dataframe后从大到小排序,取前90%,再合并成个大的dataframe
  • 用python按某拆分excel表格程序及优化需求VBA失败代码性能调优Python最终代码总结 需求 要处理几个七八百兆大的csv文件,需求是把它里面每个站的数据拆分成单独的excel文件。 网上有现成的方方格子软件,处理...
  • 最近在处理数据的时候遇到这样一个问题,原始数据中有些字段以(key:value)形式存储的数据,如表中Sex一列取值[F: Female],其中F是key、Female是具体的value。为了简化数据,利用pandas.Series.str.split(pat=None...
  • 背景:为了对图片中的表格进行ocr识别,如果直接识别效果较差,所以将表格拆分成小块个个识别,然后再拼成表格即可。 拆分规则的表格: import cv2 import numpy as np """ 事先大概确定表格的相邻横线和竖线...
  • 用python将某一列按照内容分成多个excel 我们经常会在工作中遇见,类似下图中的表格,领导要求你将各个部门筛选出,并按照“财务部.xlsx”的格式单独成立一个excel,数据少了还好说,如果数据量大了,大半夜叫你来...
  • 2、excel表格保留一行标题行,并把第一列数据填写为拆分项(文件拆分时将按第一列的内容进行归类合并为一个文件),整个表格不要合并单元格; 3、在打开的EXCEL工作表名称上点右键选择查看代码; 4、选择菜单栏:...
  • setwd("F:/拆分数据") Q1<-read_xls("VIEW_P206_0_1.xls")#读入数据 name_city<-unique(Q1[,6])#根据第四,数据去重,得到84个县的字符串 n<-length(name_city) out1<-as.character() out_filePath<...
  • Sub 拆分总表() Sheets(1).Select Ro = [A65536].End(3).Row '根据第A提取最大行数 Co = [XFD1].End(1).Column '根据第... m = InputBox("按第几列拆分?" & Chr(10) & Chr(10) & "序数范围:1 至
  • Python中将DataFrame类型的数据按某一列的值拆分成多个DataFrame类型的数据 1. 循环定义多个变量 当定义变量的个数是n时,定义n个变量: 注: eval()函数和exec()函数的区别: eval()函数只能计算单个...
  • Python对Excel按值筛选并拆分表格到多个文件的代码发布时间:2020-09-22 02:41:00来源:脚本之家阅读:92场景:集团中心下发本省数据时,并未按地市、业务拆分,现需要按地市、业务拆分并分发到地市。本文利用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,815
精华内容 7,926
关键字:

一列表格怎么拆分