使用pandas python将sheet2中出现次数的关键字添加到sheet1中现有的excelfile中
我正在从网上抓取数据到Excel工作表使用pandas&能够将其保存到工作表1,现在我想获取特定列的数据到工作表2相同的Excel中,但只想把关键字的名称和次数该关键字出现在该列中
例如,我有一个标题作为汽车制造商在表一&列可以有多个不同的数据,但同样的汽车制造商像许多客户可以拥有奥迪,福特等,有6-7列在Sheet1和汽车制造商是其中之一。 我想获得像这样的数据
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
与counts
。 您需要转换结果.to_frame()
因为只有DataFrame
具有to_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()
正如Stefan所回答的那样,在指定的列上使用value_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
。 如to_excel()
文档中所述,
如果传递一个现有的ExcelWriter对象,那么该表将被添加到现有的工作簿中。 这可以用来将不同的DataFrame保存到一个工作簿
请注意,为了使用to_excel()
, Series
(从value_counts()
返回)必须转换为DataFrame
。 这可以按照上面的方式(通过to_frame()
)来完成,或者通过使用明确的方式来完成:
pd.DataFrame(df.Manufacturer.value_counts()).to_excel(writer, 'Sheet2')
虽然第一个通常会快一点,但第二个可能会被认为更具可读性。
- 我怎样才能使用.xla文件中的代码从Excel VBA压缩文件?
- Excel VBA,parsing来自HTTP请求的响应
- Excel给“系统错误&H80004005(-2147467259)。 未指定的错误“消息
- 如何通过ColdFusion HTML表单优雅地将Excel文件导入到Sql Server中?
- Lotus Notes中的Symphony对象和Excel应用程序对象帮助文件
- python:创buildexcel工作簿并将csv文件转储为工作表
- 将从Excel导出的非规范化关系数据导入到SQL Server中
- Excel VBA循环通过01.Month和01.01。 给予最小和最大天数
- 从vba正确访问iFrame