使用python将sheet2中出现次数为的关键字添加到sheet1中的现有Excel文件中

使用python将sheet2中出现次数为的关键字添加到sheet1中的现有Excel文件中,python,excel,pandas,Python,Excel,Pandas,我正在使用pandas将数据从web提取到excel工作表中&能够将其保存到工作表1中,现在我想将特定列的数据提取到同一excel的工作表2中,但只想输入关键字的名称以及该关键字在该列中出现的次数 例如,我在表1中有一个标题为“汽车制造商”的列,可以有多行,数据不同,但同一个汽车制造商,如许多客户可以拥有奥迪、福特等,表1中有6-7列,汽车制造商就是其中之一。我想得到这样的数据 Manufacturer Count 1. Audi 100 2. Ford 3

我正在使用pandas将数据从web提取到excel工作表中&能够将其保存到工作表1中,现在我想将特定列的数据提取到同一excel的工作表2中,但只想输入关键字的名称以及该关键字在该列中出现的次数

例如,我在表1中有一个标题为“汽车制造商”的列,可以有多行,数据不同,但同一个汽车制造商,如许多客户可以拥有奥迪、福特等,表1中有6-7列,汽车制造商就是其中之一。我想得到这样的数据

   Manufacturer Count
 1. Audi        100
 2. Ford        30
 3. Mercedes    25
 4. xxxxx       9
第2页。 Python代码示例将不胜感激

您询问了有关向第二张excel工作表添加数据的问题。也许您可以解决有关
to_excel()
部分的任何问题

在类别计数中,您可以执行以下操作:

df.Manufacturer.value_counts().to_frame()
使用
计数获取
pd.Series
。您需要将结果
转换为\u frame()
,因为只有
DataFrame
具有
到\u excel()的方法

总之,使用我的链接答案:

import pandas as pd
from openpyxl import load_workbook

book = load_workbook('Abc.xlsx')
writer = pd.ExcelWriter('Abc.xlsx', engine='openpyxl') 
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
df.Manufacturer.value_counts().to_frame().to_excel(writer, sheet_name='Categories')
writer.save()
正如所回答的,在指定列上使用
value\u counts()
即可

由于要将多个数据帧保存到单个工作簿中,因此我将使用
pandas.ExcelWriter

import pandas as pd

writer = pd.ExcelWriter('file_name.xlsx')
df.to_excel(writer)    # this one writes to 'Sheet1' by default
pd.Series.to_frame(df.Manufacturer.value_counts()).to_excel(writer, 'Sheet2')
writer.save()
无需使用
openpyxl
。如文件所述

如果传递现有ExcelWriter对象,则工作表将添加到现有工作簿中。这可用于将不同的数据帧保存到一个工作簿中

请注意,为了将
转换为excel()
,必须将
系列
(从
值_counts()
返回)转换为
数据帧
。这可以如上所述(通过
到_frame()
)或明确地通过使用:

pd.DataFrame(df.Manufacturer.value_counts()).to_excel(writer, 'Sheet2')
虽然第一个通常要快一点,但第二个可能会被认为更具可读性