我正在尝试按级别对多索引数据框对象进行第一个区别。多索引是(公司,年份)对。但是,当我尝试使用.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.
当我尝试具有不同形状的不同但非常相似的数据框时,似乎没有问题:代码可以完美运行。我不明白为什么我在使用的特定文件中看到这样的错误。有想法吗?
考虑一个具有两千行六万列的矩阵。当我尝试时差时,代码会在实际文件中引发错误。