Python 在带有groupby函数的Pandas中使用For循环
Python 在带有groupby函数的Pandas中使用For循环,python,pandas,loops,for-loop,Python,Pandas,Loops,For Loop,ungroup是一个如下所示的数据帧: date borough 969609 01/01/2014 BROOKLYN 967983 01/01/2014 BRONX 967982 01/01/2014 QUEENS 865943 01/01/2014 BROOKLYN 967981 01/01/2014 MANHATTAN 967980 01/01/2014 BROOKL
ungroup
是一个如下所示的数据帧:
date borough
969609 01/01/2014 BROOKLYN
967983 01/01/2014 BRONX
967982 01/01/2014 QUEENS
865943 01/01/2014 BROOKLYN
967981 01/01/2014 MANHATTAN
967980 01/01/2014 BROOKLYN
967979 01/01/2014 QUEENS
967984 01/01/2014 BRONX
967978 01/01/2014 QUEENS
967976 01/01/2014 BROOKLYN
967975 01/01/2014 BROOKLYN
我有以下代码:
for row in unGrouped:
if unGrouped['borough'][row]=='BRONX':
bronxCount+=1
print bronxCount
它给了我一个关键错误:date
。
我想遍历
borough
列,每当遇到BRONX
时,递增bronxCount
,并将每行的值存储在一个名为“bronxCount”的列中,以最终获得布朗克斯每天的犯罪计数。如果有人能让这个循环工作,我将不胜感激。谢谢你的帮助 通常,如果使用for循环,则可能是做错了
你可能想要的是一个groupby和count
unGrouped.groupBy('borough').size()
一般来说,如果你使用for循环,你可能是做错了 你可能想要的是一个groupby和count
unGrouped.groupBy('borough').size()
使用
值\u计数
:
bronxCount = unGrouped.borough.value_counts()['BRONX']
print(BronxCount)
输出:
2
使用
值\u计数
:
bronxCount = unGrouped.borough.value_counts()['BRONX']
print(BronxCount)
输出:
2
您可以在筛选后进行汇总:
>>> (unGrouped.borough == 'BRONX').sum()
2
要获得每个日期的计数,只需在计数前按日期和时间分组:
>>> unGrouped.groupby(['date', 'borough']).size()
date borough
01/01/2014 BRONX 2
BROOKLYN 5
MANHATTAN 1
QUEENS 3
dtype: int64
或者,如果您只想要带日期索引的BRONX
>>> unGrouped.groupby(['borough', 'date']).size().loc['BRONX']
date
01/01/2014 2
dtype: int64
您可以在筛选后进行汇总:
>>> (unGrouped.borough == 'BRONX').sum()
2
要获得每个日期的计数,只需在计数前按日期和时间分组:
>>> unGrouped.groupby(['date', 'borough']).size()
date borough
01/01/2014 BRONX 2
BROOKLYN 5
MANHATTAN 1
QUEENS 3
dtype: int64
或者,如果您只想要带日期索引的BRONX
>>> unGrouped.groupby(['borough', 'date']).size().loc['BRONX']
date
01/01/2014 2
dtype: int64
使用
numpy
v, n = np.unique(df.borough.values, return_counts=True)
d=dict(zip(v, n))
d['BRONX']
Out[218]: 2
使用
numpy
v, n = np.unique(df.borough.values, return_counts=True)
d=dict(zip(v, n))
d['BRONX']
Out[218]: 2
谢谢你的建议!这些方法都可以计算布朗克斯区的犯罪情况,但我希望保留与事件相关的“日期”条目,这样我就可以为一年中的犯罪情况制定一个时间表。这些将时间维度展平,只给出总计数,而我希望得到每天的计数(因此是初始循环)。有什么想法吗?谢谢你的建议!这些方法都可以计算布朗克斯区的犯罪情况,但我希望保留与事件相关的“日期”条目,这样我就可以为一年中的犯罪情况制定一个时间表。这些将时间维度展平,只给出总计数,而我希望得到每天的计数(因此是初始循环)。有什么想法吗?就是这样!loc是丢失的钥匙。非常感谢你,迈克,就是这样!loc是丢失的钥匙。非常感谢你,迈克