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

根据日期和值聚合行,并添加分数

齐甫
2023-03-14

我目前有以下数据帧;

我要做的是创建一个如下所示的dataframe;

其中,每当“感情”列中的值为“正”时,就会添加1,每当它为负时,就会从新创建的sentiment_score列中扣除1。最后,数据帧将被聚合成每个日期的股票及其相应的情绪得分。

然而,我的问题是我知道如何在Excel中这样做,但我刚刚开始使用Python,因此对如何在Excel中这样做几乎一无所知。

任何帮助都将非常感谢!

共有1个答案

阎咏思
2023-03-14

首先map列感情,将positive替换为1,将negative替换为-1,然后groupby两列date和stock_ticker、sum和最后reset_index以获得预期的输出。

res = (
    df['sentiment'].map({'positive':1, 'negative':-1})
        .groupby([df['date'], df['stock_ticker']])
        .sum()
        .reset_index(name='sentiment_score')
)
print(res)
         date stock_ticker  sentiment_score
0  2020-05-01          gme               -1
1  2021-04-01        vlkaf                1
2  2021-04-02        vlkaf               -2
 类似资料:
  • 我有一个数据帧(df),它具有特定值(在本例中为“货币”)的开始和结束日期。我需要将其与另一个数据帧(tbl)合并,并根据第一个DF的开始/结束日期填写空白货币行。NULL表示没有结束日期,所以一切都在继续。在这种情况下,2020年11月1日之后的所有费用均为美元。因此,来自SQL的数据为空。 这就是我需要的 df_合并是我需要的最终外观。第二个问题-如果我没有第二个数据帧(tbl)来合并怎么办。

  • 我正在尝试通过ID和日期聚合数据帧。假设我有一个DataFrame: 我想通过ID和日期(频率=1W)聚合该值,并得到一个dataframe如下所示: 我理解它可以通过迭代ID并使用grouper聚合价格来实现。有没有更有效的方法不迭代IDS?多谢。

  • 我有一个数据集 是否有任何方法可以确保,如果不同的的下一个值小于中的值,那么它应该在 列中执行加法。 下面是我期待的结果 所以基本上我寻求一个解决方案,对于每个唯一的< code>field_pointpath,如果它遇到一个小于前一个值的值,那么它应该将前一个值与下一个值相加。 if <代码>值[i 1]

  • 问题内容: 这是我对源数据的插入语句。 我有我的源数据 该数据已经排序,和。 我正在尝试从中生成此输出: 这是从原始数据得出结果的逻辑: 对于带有,或的每个记录 A* :如果以下记录 B 具有,则: * 如果记录 乙 具有相同的日期部分如 甲 (忽略时间),同时消除记录 甲 和 乙 从结果。这就是为什么删除记录4、5、8和9的原因; 否则,如果记录 B 的值早于记录 A ,则将 A 的值更新为 B

  • 这是我对源数据的插入语句。 我有我的源数据 此数据已按、和进行排序。 我试图从中生成以下输出: 这是从原始数据得出结果的逻辑: 对于的记录 A:如果以下记录 B ,则: 如果记录 B 具有与 A 相同的日期部分(忽略时间),请从结果中删除记录 A 和 B。这就是为什么记录4,5,8和9被删除的原因; 否则,如果记录 B 值早于记录 A,请将 A 的更新为 B 的TERM_END_DATE。这就是为

  • 问题内容: 我有一个包含时间戳名为RDD 时间 长整型: 我正在尝试按值1,值2和时间分组为YYYY-MM-DD。我尝试按演员分组(时间为日期),但随后出现以下错误: 这是否意味着无法按日期分组?我什至尝试添加另一级别的强制转换以将其作为字符串: 哪个返回相同的错误。 我已经读到我可以在RDD上使用gregationByKey,但我不明白如何在几列中使用它并将其转换为YYYY-MM-DD字符串。我