我正在尝试计算记录在我的pandas列>=
中频率大于3的次数 - 按日期分组。
目前此代码可以正常运行,但它适用于整体数据框架。
?:
我想按'Subject'
对数据进行分组 - 以查看每天有多少记录的频率超过3。
我的数据框架如下所示:
main_subj = df['Subject'].value_counts(
[df['Subject'].value_counts()>3] count_main_subj = main_subj.shape[0]
例如,如果有一天有10条记录: 5主题特朗普 3主题克林顿 2与主题obama
结果为2 - 出现次数超过3次的受试者数量。
谢谢!
答案 0 :(得分:0)
假设您有一个名为date的列,您可以按日期分组
df.groupby('date').size()
或
df[['Subject', 'date']].groupby('date').size()
这将输出您需要的计数
答案 1 :(得分:0)
似乎你需要
s=df.groupby(['Date','Object']).size()
len(s[s>3])
答案 2 :(得分:0)
您可以使用:
(df.groupby(['Date', 'Subject']).size() >= 3).sum()
示例:
In [227]: df
Out[227]:
Subject Verb Object ID Date
0 trump got jobs 820108 20170803
1 voters begin to 182912 20170803
2 steve miss colleague 980828 20170804
3 trump got jobs 820108 20170803
4 trump got jobs 820108 20170803
In [228]: (df.groupby(['Date', 'Subject']).size() >= 3).sum()
Out[228]: 1
如果您想按日期计算:
d = (df.groupby(['Date', 'Subject']).size() >= 3).reset_index()
d[d[0]].groupby('Date').size()