【问题标题】:Pandas associate or filter a date column between a range and groupby another columnPandas 在一个范围和另一列分组之间关联或过滤日期列
【发布时间】:2021-05-24 04:05:27
【问题描述】:

我是 pandas 的新手,我正在尝试在我的 twitter 数据集上执行一些 EDA。 Dataset column

链接到数据集:https://www.kaggle.com/kaushiksuresh147/the-social-dilemma-tweets

数据框示例:Sample dataframe

我想过滤在“2020-09-08 和 2020-09-22”之间创建的新用户(来自 user_created 列),然后将结果与情绪列分组。我还想计算该新用户在该期间创建的推文总数,并将其与不在所选范围内的其他用户的推文总数进行比较(2020-09-08 和 2020-09-22) .

我尝试了一种方法,但我的代码一直给我错误消息:KeyError: 'user_created'code snippet

我也试过这段代码,它也给了我错误信息:KeyError: 'user_created'2nd code

df['user_created'] = pd.to_datetime(df['user_created'])
start = '2020-09-08'
end = '2020-09-20'
df[(df['user_created'] >= start) & (df['user_created'] <= end)]
df[(df['user_created'] >= '2020-09-08') & (df['user_created'] <= '2020-09-22')]
grouped_df = df.groupby(['user_name', 'Sentiment','user_created']).size().reset_index(name="Count")
print(grouped_df.to_string(header=False))

我已尝试使用 df.get(user_created) 检索此列,但它似乎不起作用。

【问题讨论】:

    标签: python pandas pandas-groupby sentiment-analysis


    【解决方案1】:

    我认为startend 应该是日期时间格式(datetime.datetimenp.datetime64pd.Timestamp),而不是字符串格式。

    from datetime import datetime
    
    start = datetime.strptime('2020-09-08', '%Y-%m-%d')
    end = datetime.strptime('2020-09-20', '%Y-%m-%d')
    df[(df['user_created'] >= start) & (df['user_created'] <= end)]
    

    【讨论】:

    • 谢谢。正如您所建议的,我使用 datetime.datetime 将其更改为 datetime 格式,但仍然出现 KeyError: 'user_created' 错误。
    猜你喜欢
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2022-11-04
    • 2020-06-05
    • 2021-09-22
    • 2016-01-11
    相关资源
    最近更新 更多