与Pandas GroupBy的第一个区别不起作用:'SeriesGroupBy'对象不可调用错误

时间:2019-06-10 12:21:54

标签: python-3.x

我正在尝试按级别对多索引数据框对象进行第一个区别。多索引是(公司,年份)对。但是,当我尝试使用.groupby(level=0).diff()来逐年区分时,我的代码将引发错误:TypeError: 'SeriesGroupBy' object is not callable

我使这段代码运行了很多次,但这一次它不起作用,我也不知道为什么。

我也尝试过计算总和,计数等。它们运行良好。但是当我尝试.diff()时会抛出错误

我对每个公司年份都有一个term-doc矩阵,列是公司文本文件中使用的词。例如:

iterables = [T, Firms]
index=pd.MultiIndex.from_product(iterables, names=['Time', 'Firm'])


firm_doc_df=pd.DataFrame(columns=['Telephone', 'Cellular', 'Digital', 'Analog', 'Internet', 'iphone', 'Android', 'Grocery'], index=index)
firm_doc_df 

现在假设:

firm_doc_df.loc[(0,1)]=[1, 1, 0, 1, 1, 0, 1, 0]
firm_doc_df.loc[(1,1)]=[1, 1, 0, 1, 1, 0, 1, 0]
firm_doc_df.loc[(2,1)]=[1, 1, 0, 1, 1, 1, 1, 1]
firm_doc_df.loc[(0,2)]=[1, 1, 1, 0, 0, 0, 0, 0]
firm_doc_df.loc[(1,2)]=[1, 1, 1, 0, 1, 1, 1, 0]
firm_doc_df.loc[(2,2)]=[1, 1, 1, 1, 1, 1, 1, 0]
firm_doc_df.loc[(0,3)]=[1, 1, 0, 1, 0, 1, 0, 0]
firm_doc_df.loc[(1,3)]=[1, 1, 0, 1, 1, 1, 0, 0]
firm_doc_df.loc[(2,3)]=[1, 1, 0, 1, 1, 1, 0, 0]

现在,当我尝试使用实际文件查看某家公司逐年变化时:

firm_doc_df.groupby(level=1).diff()

它在实际文件中抛出错误(在此示例中未出现):

TypeError: 'SeriesGroupBy' object is not callable.

当我尝试具有不同形状的不同但非常相似的数据框时,似乎没有问题:代码可以完美运行。我不明白为什么我在使用的特定文件中看到这样的错误。有想法吗?

考虑一个具有两千行六万列的矩阵。当我尝试时差时,代码会在实际文件中引发错误。

0 个答案:

没有答案