首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用pandas python将sheet2中出现次数的关键字添加到sheet1的现有excelfile文件中

用pandas python将sheet2中出现次数的关键字添加到sheet1的现有excelfile文件中
EN

Stack Overflow用户
提问于 2016-06-02 11:36:14
回答 2查看 149关注 0票数 1

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

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

代码语言:javascript
复制
   Manufacturer Count
 1. Audi        100
 2. Ford        30
 3. Mercedes    25
 4. xxxxx       9

在表2中。Python代码示例将非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2016-06-02 12:02:12

您要求similar question将数据添加到第二个excel工作表中。也许您可以解决围绕to_excel()部件的任何问题。

在类别计数上,您可以这样做:

代码语言:javascript
复制
df.Manufacturer.value_counts().to_frame()

counts上安装pd.Series。您需要转换结果.to_frame(),因为只有DataFrameto_excel()方法。

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

代码语言:javascript
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2016-06-02 17:58:36

正如Stefan回答的那样,在指定的列上使用value_counts()就可以了。

由于您要将多个DataFrames保存到单个工作簿,因此我将使用pandas.ExcelWriter

代码语言:javascript
复制
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。如to_excel()文档中所指出的,

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

请注意,为了使用to_excel(),必须将Series (从value_counts()返回)转换为DataFrame。这可以如上所述(通过to_frame())完成,也可以通过使用以下命令显式完成:

代码语言:javascript
复制
pd.DataFrame(df.Manufacturer.value_counts()).to_excel(writer, 'Sheet2')

虽然第一个通常要快一点,但第二个可能更具可读性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37582198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档