Pandas 关联或过滤范围和分组之间的日期列
Pandas associate or filter a date column between a range and groupby another column
我是 pandas 的新手,我正在尝试对我的 Twitter 数据集执行一些 EDA。 Dataset column
Link 到数据集: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
我也试过这段代码,它也给我错误 message: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) 来检索此列,但它似乎不起作用。
我认为start
和end
应该是日期时间格式(datetime.datetime
、np.datetime64
或pd.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)]
我是 pandas 的新手,我正在尝试对我的 Twitter 数据集执行一些 EDA。 Dataset column
Link 到数据集: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
我也试过这段代码,它也给我错误 message: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) 来检索此列,但它似乎不起作用。
我认为start
和end
应该是日期时间格式(datetime.datetime
、np.datetime64
或pd.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)]