使用pandas python

时间:2016-06-02 03:36:14

标签: python excel pandas

我使用pandas& amp ;;从web获取数据到excel表。能够将它保存到表1,现在我想将特定列的数据提取到相同excel的表2中,但是只想放置关键字的名称&关键字在该列中出现的次数

例如,我在第1页和第1页中有一个名为Car Manufacturer的专栏。可以有多行具有不同的数据但是相同的汽车制造商像许多客户可以拥有奥迪,福特等& sheet1&中有6-7列。汽车制造商就是其中之一。我想得到像

这样的数据
   Manufacturer Count
 1. Audi        100
 2. Ford        30
 3. Mercedes    25
 4. xxxxx       9
表2中的

。 Python代码示例将非常感谢!

2 个答案:

答案 0 :(得分:1)

您要求similar question向第二个Excel工作表添加数据。也许你可以解决to_excel()部分的任何问题。

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

df.Manufacturer.value_counts().to_frame()

获取pd.Series的{​​{1}}。您需要转换结果counts,因为只有.to_frame()具有DataFrame方法。

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

to_excel()

答案 1 :(得分:0)

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

由于您要将多个DataFrame保存到单个工作簿,因此我使用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')

虽然第一个通常更快一些,但第二个可能被认为更具可读性。