Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python排序Excel电子表格_Python_Excel_Python 3.x_Pandas_Xlrd - Fatal编程技术网

用Python排序Excel电子表格

用Python排序Excel电子表格,python,excel,python-3.x,pandas,xlrd,Python,Excel,Python 3.x,Pandas,Xlrd,这是我的第一篇文章,我的编程知识相当有限。如果能用python给出答案,我将不胜感激,因为这是我唯一熟悉的语言。我也尝试过使用pandas和xlrd,所以继续使用它们会很好 问题是:我有一份大约30000条的公司名单。该列表是以谷歌表格的形式出现的,但可以很容易地导出到Excel。工作表的每一行代表一家公司,每一列代表一条与该公司有关的信息 我的老板想让我们一组人检查这张表,并根据每个公司的行业对其进行分类,这显然需要很长时间。它包括搜索每个公司的名称,查找其行业,然后复制未排序工作表上的行,并

这是我的第一篇文章,我的编程知识相当有限。如果能用python给出答案,我将不胜感激,因为这是我唯一熟悉的语言。我也尝试过使用pandas和xlrd,所以继续使用它们会很好

问题是:我有一份大约30000条的公司名单。该列表是以谷歌表格的形式出现的,但可以很容易地导出到Excel。工作表的每一行代表一家公司,每一列代表一条与该公司有关的信息

我的老板想让我们一组人检查这张表,并根据每个公司的行业对其进行分类,这显然需要很长时间。它包括搜索每个公司的名称,查找其行业,然后复制未排序工作表上的行,并将其粘贴到已分类工作表上的行中

我的想法是,使用if语句,我们可以很快地对大量工作进行排序

例如,假设有一类公司被称为“建筑公司”。如果公司名称包含“建筑”、“钢铁”或类似的词语,我们可以自动将该公司(及其所有信息)移至名为“建筑”的新类别。新的目的地最好是新excel文件上的工作表。任何没有任何行业关键字的项目都会进入未排序的工作表

我所要做的是找到一种方法对数据进行排序,将每个公司的所有信息放在一起,并将一行从一个地方移动/复制到另一个地方。我可以使用什么功能?我该如何处理这个问题

我们的目标是让30000个条目中的大部分(而不是全部)根据它们的名称自动排序,因此我可能只需要手动对几千个与任何关键字都不匹配的未排序条目进行排序


非常感谢您在这个问题上提供的任何帮助,我非常乐意提供任何人可能需要的帮助这项工作的其他详细信息。

困难的部分将是编写一个函数
get_category()
,该函数获取一行并返回一个类别。一旦你有了这些,你就可以做类似于
df['category']=df.apply(get_category,axis=1)
,这将插入一列,说明公司是什么类别,或者
category_dict={category[0]:df.groupby(df.apply(get_category,axis=1)}
,它将创建一个字典,其中每个键都是一个类别,相应的值是该类别中公司的数据框


对于
get_category
,您可能需要查看
requests
模块。您可以自动获取公司名称,查看是否可以找到有关该公司的网站,然后搜索这些网站的关键字。

这与其说是一个具体的编码问题,不如说是一个概念问题,但作为一种基本方法,look into pandas`搜索文本字符串的功能。至于“移动数据”,你应该能够直接用pandas读取谷歌工作表,根据过滤添加新列,然后将CSV/Excel文件导出到桌面或服务器。我不确定你是否可以使用python修改谷歌工作表,但手动导出/上载也不太糟糕,e特别是当你可能需要手工编写一些条目时。有10个左右的样本数据条目可以查看……但听起来像是有一个映射到dict的关键字列表可能是你需要对每个公司进行分类的内容。例如:
keyword_dict={‘Construction’:[‘Construction’、‘steel’、‘contractor’]、‘Energy’:['power'、'light'、'energy']、…}
然后您可以使用python的内置
csv
模块来解析和编辑csv文件,或者使用其他模块,如
openpyxl
来处理excel工作表。希望提供更多帮助,但如果没有更具体的信息,则很难:)