繁体   English   中英

Pandas 关联或过滤范围和分组之间的日期列由另一列

[英]Pandas associate or filter a date column between a range and groupby another column

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

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

Dataframe 样品:样品 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) 来检索此列,但它似乎不起作用。

我认为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)]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM