首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用DataFrame Pandas索引CrossTab

用DataFrame Pandas索引CrossTab
EN

Stack Overflow用户
提问于 2018-11-09 11:53:21
回答 1查看 1.2K关注 0票数 1

我有两个数据集。

第一个,在市场变量中,包含一个具有以下结构的通用市场趋势:

代码语言:javascript
复制
Date     High    Close     Volume     Open      Low

第二个问题是,在心情中,变量每天都包含一些在这种结构中带有无表情情绪的tweet:

代码语言:javascript
复制
body       date            datetime         id sentiment      time

所以,我想每天数一数到底有多少“看跌”和“看涨”情绪。它可以工作,这是我的代码,并附有注释:

代码语言:javascript
复制
# Read the datasets
market = pd.read_csv("Datasets/SP500/aggregates.txt")
moods = pd.read_json("Datasets/DatasetStockTwits-Aggregato.json")
# Remove all null sentiments
moods = moods[moods.sentiment != "null"]
# Get a generic subsets of data for computational speed
market_tail = market.tail(100)
# For each day present in market_tail, get the same days twits
moods_tail = moods.loc[moods['date'].isin(market_tail.Date)]
# So now I count for each day how many "Bearish" and "Bullish" twits there are
sentiments_count = pd.crosstab(moods_tail['date'], moods_tail['sentiment'])

print(sentiments_count)

这是结果:

代码语言:javascript
复制
sentiment   Bearish  Bullish
date                        
2017-11-03        9       12
2017-11-05        3        6
2017-11-06       20        9
2017-11-07       16       35

因此,它可以正常工作,但我不明白为什么不能访问sentiments_count.datesentiments_count['date']索引。

事实上,如果我尝试这样的东西:

代码语言:javascript
复制
print(sentiments_count['date'])

我得到:KeyError: 'date'

我是不是错过了什么?谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-11-09 11:54:45

您不能选择它,因为它是index,所以需要:

代码语言:javascript
复制
print(sentiments_count.index)

对于从index需要reset_index创建列,也可以为数据清理添加rename_axis以删除列名sentiment

代码语言:javascript
复制
sentiments_count = sentiments_count.reset_index().rename_axis(None, 1)

print(sentiments_count['date'])
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53225248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档