Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在带有groupby函数的Pandas中使用For循环_Python_Pandas_Loops_For Loop - Fatal编程技术网

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是丢失的钥匙。非常感谢你,迈克