当前位置: 首页 > 知识库问答 >
问题:

使用CrossTab Pandas索引DataFrame[重复]

黄景胜
2023-03-14

我有两个数据集。

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

Date     High    Close     Volume     Open      Low

第二,在心情变量中,每一天都包含一些推文,在这个结构中带有同样的情绪:

body       date            datetime         id sentiment      time

所以,我想每天数一数有多少“熊市”和“牛市”情绪。它的工作原理,这是我的代码与注释:

# 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)

结果如下:

sentiment   Bearish  Bullish
date                        
2017-11-03        9       12
2017-11-05        3        6
2017-11-06       20        9
2017-11-07       16       35

所以它工作得很好,但我不明白为什么我不能访问情感。日期情绪计数['date']索引。

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

print(sentiments_count['date'])

我获得:keyrerror:“日期”

我错过了什么吗?谢啦

共有1个答案

鲁鸿朗
2023-03-14

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

print(sentiments_count.index)

对于从索引创建列需要重置索引,也可以为数据清理添加重命名轴以删除列名情感

sentiments_count = sentiments_count.reset_index().rename_axis(None, 1)

print(sentiments_count['date'])
 类似资料:
  • 假设我们有这样一个数据frame: 我们还有另一个具有相同行数和列数(具有相同名称)的DataFrame: 我不知道如何创建另一个由和组成的DataFrame,使其看起来像下面的DataFrame(可能有两个索引级别): 阅读基于列标签在pandas中重新塑造dataframes并从多个dict创建一个pandas DataFrame,这给了我一些见解(因为我也试图通过以下方法来实现:首先将原始d

  • 问题内容: 使用以下DataFrame,如何在不让Pandas将移位后的值分配给其他索引值的情况下基于索引来移位“ beyer”列? 生产… 问题在于,佩恩特得到了分配最后一位战士的啤酒。相反,我希望它像这样… 问题答案: 使用应用转移到各组分别:(感谢Jeff指出这个简化) 如果您有一个多索引,则可以通过将一系列或级别名称传递给 参数来对多个级别进行分组。

  • 问题内容: 这是我遇到错误的方式: 类型为,其中包含行索引列表。所有这些行索引都属于。 这是我需要过滤的条件。 如果我分别执行以下命令,则不会收到任何警告: 但是,如果将它们放在一起,则会收到警告消息(但可以看到结果): 布尔系列键将重新索引以匹配DataFrame索引 此错误消息是什么意思?它会影响返回的结果吗? 问题答案: 尽管有警告,您的方法仍然可以使用,但是最好不要依赖隐式,不清楚的行为。

  • 问题内容: 我正在尝试重新索引熊猫对象,像这样, 我正在如下所示进行操作,并且得到了错误的答案。有关如何执行此操作的任何线索? 知道为什么会这样吗? 问题答案: 为什么不简单地使用方法?

  • 问题内容: 我正在尝试仅使用来自多索引DataFrame的一个索引来创建新的DataFrame。 理想情况下,我想要这样的事情: 和: 本质上,我想删除除level之外的多索引的所有其他索引。是否有捷径可寻? 问题答案: 一种方法是简单地重新绑定到所需的MultiIndex级别。您可以通过指定要保留的标签名称来做到这一点: 或使用级别的整数值: MultiIndex的所有其他级别将在此处消失。