AttributeError:“ DataFrame”对象没有属性“ value_counts”

时间:2019-08-04 18:17:36

标签: python excel pandas

本周我开始使用熊猫,所以请问一个非常明显的问题。我试图让熊猫在Excel wb中的所有工作表之间循环,以提取特定的列F列,以通过value_counts进行事件计数。

以前,我使用value_counts并键入了工作表的特定名称,并且它可以拉出该1张表的值计数。但是,在我将工作表名称替换为df1的那一刻,它停止工作。

df = pd.ExcelFile("filepath.xlsx")
for df1 in df.sheet_names:
    df2 = pd.read_excel("filepath.xlsx", sheet_name=df1, usecols="F")
    df2.dropna(inplace=False)
    print (df2.value_counts())

我希望输出是唯一值及其出现次数,但它返回:

AttributeError:“ DataFrame”对象没有属性“ value_counts”

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您在源Excel文件的每个工作表上都有一个循环。 可以,但是您应该分别对每个应用 value_counts DataFrame(从每个工作表中读取)。

以及有关变量名称的说明: df 仅用于DataFrame。 Excel文件工作表名称都不是DataFrames。

所以循环应该是这样的:

exFile = pd.ExcelFile("filepath.xlsx")
for sheet in exFile.sheet_names:
    df = pd.read_excel("filepath.xlsx", sheet_name=sheet, usecols="F")
    df.dropna(inplace=True)
    print('Sheet', sheet)
    print(df.apply(pd.Series.value_counts))