【发布时间】:2018-03-14 01:32:18
【问题描述】:
我有一个数据框news_count。以下是它的列名,来自news_count.columns.values 的输出:
[('date', '') ('EBIX UW Equity', 'NEWS_SENTIMENT_DAILY_AVG') ('Date', '')
('day', '') ('month', '') ('year', '')]
我需要按年和月计算groupby 以及'NEWS_SENTIMENT_DAILY_AVG' 的总和值。以下是我尝试过的代码,但都不起作用:
尝试 1
news_count.groupby(['year','month']).NEWS_SENTIMENT_DAILY_AVG.values.sum()
'AttributeError: 'DataFrameGroupBy' object has no attribute'
尝试 2
news_count.groupby(['year','month']).iloc[:,1].values.sum()
AttributeError: Cannot access callable attribute 'iloc' of 'DataFrameGroupBy' objects, try using the 'apply' method
输入数据:
ticker date EBIX UW Equity month year
field NEWS_SENTIMENT_DAILY_AVG
0 2007-05-25 0.3992 5 2007
1 2007-11-06 0.3936 11 2007
2 2007-11-07 0.2039 11 2007
3 2009-01-14 0.2881 1 2014
【问题讨论】:
-
你试过
news_count.groupby(['year','month']).NEWS_SENTIMENT_DAILY_AVG.sum()吗? -
问题是它没有识别
NEWS_SENTIMENT_DAILY_AVG列。错误消息 -AttributeError: 'DataFrameGroupBy' object has no attribute 'NEWS_SENTIMENT_DAILY_AVG' -
您在使用多列索引吗?
-
Reset_index 适用于索引,而不是列...
-
我不确定我可以吗?因为我不是 100% 确定我了解您的数据框的结构,所以这些列看起来很糟糕。尝试明确地重新分配它们:
df.columns = ['date', 'avg', 'day', 'month', 'year', ...]等等。如果可以,请更新您的数据框,并在我的第一条评论中再次尝试我的建议。
标签: python pandas dataframe group-by pandas-groupby