Pandas Dataframe Timedelta mean() 没有显示正确的值
Pandas Dataframe Timedelta mean() not showing correct values
我搜索了又搜索,但没有找到解决方案,也没有找到为什么会发生这种情况的答案。
我正在尝试在我的 pandas 数据框中为 Request_Closing_Time
确定每个行政区的 mean()
。当我 groupby
自治市镇然后得到请求关闭时间的平均值时,我得到非常大的值,13
到 44
天,然后甚至 87,426
天一个结果。最大值仅为 24
天,整个数据帧的平均值仅为 4
小时。如果我用 get_group 命令挑出一个单独的自治市镇,那么我似乎得到了一个我认为正确的更正常的答案。
当 groupby
仅按自治市镇划分时,关于为什么均值如此之差的任何想法?
In [283]:nyc_sr_calls_trimmed.describe()
Out[283]: Unique Key Request_Closing_Time Incident Zip
count 3.006980e+05 298534 298083.000000
mean 3.130054e+07 0 days 04:18:51.832782865 10848.888645
std 5.738547e+05 0 days 06:05:22.141833856 583.182081
min 3.027948e+07 0 days 00:01:00 83.000000
25% 3.080118e+07 0 days 01:16:33 10310.000000
50% 3.130436e+07 0 days 02:42:55.500000 11208.000000
75% 3.178446e+07 0 days 05:21:00 11238.000000
max 3.231065e+07 24 days 16:52:22 11697.000000
In [284]: nyc_sr_calls_trimmed['Request_Closing_Time'].mean()
Out[284]:Timedelta('0 days 04:18:51.832782865')
In [285]:by_burrough = nyc_sr_calls_trimmed.groupby(['Borough'])
by_burrough['Request_Closing_Time'].mean(numeric_only=None).dt.floor('s')
Out[285]:Borough
BRONX -13 days +03:21:47
BROOKLYN -13 days +03:18:24
MANHATTAN -36 days +14:38:51
QUEENS -16 days +07:37:05
STATEN ISLAND -44 days +22:01:24
Unspecified -87426 days +14:15:03
Name: Request_Closing_Time, dtype: timedelta64[ns]
In [286]:b = by_burrough.get_group('QUEENS')
b['Request_Closing_Time'].mean(numeric_only=False)
Out[286]:Timedelta('0 days 04:52:16.450111002')
如有任何帮助,我们将不胜感激。我不确定我没有考虑或考虑什么。谢谢。
“如果我用 get_group 命令挑出一个单独的自治市镇,那么我似乎得到了一个我认为正确的更正常的答案”。
既然你提到了上面的内容,我想尝试的是分别为每个自治市镇获取 Request_Closing_Time
的平均值,如下所示:
by_burrough["Request_Closing_Time"].apply(lambda df_group: df_group.mean(numeric_only=False))
或
by_burrough.apply(lambda df_group: df_group["Request_Closing_Time"].mean(numeric_only=False))
我搜索了又搜索,但没有找到解决方案,也没有找到为什么会发生这种情况的答案。
我正在尝试在我的 pandas 数据框中为 Request_Closing_Time
确定每个行政区的 mean()
。当我 groupby
自治市镇然后得到请求关闭时间的平均值时,我得到非常大的值,13
到 44
天,然后甚至 87,426
天一个结果。最大值仅为 24
天,整个数据帧的平均值仅为 4
小时。如果我用 get_group 命令挑出一个单独的自治市镇,那么我似乎得到了一个我认为正确的更正常的答案。
当 groupby
仅按自治市镇划分时,关于为什么均值如此之差的任何想法?
In [283]:nyc_sr_calls_trimmed.describe()
Out[283]: Unique Key Request_Closing_Time Incident Zip
count 3.006980e+05 298534 298083.000000
mean 3.130054e+07 0 days 04:18:51.832782865 10848.888645
std 5.738547e+05 0 days 06:05:22.141833856 583.182081
min 3.027948e+07 0 days 00:01:00 83.000000
25% 3.080118e+07 0 days 01:16:33 10310.000000
50% 3.130436e+07 0 days 02:42:55.500000 11208.000000
75% 3.178446e+07 0 days 05:21:00 11238.000000
max 3.231065e+07 24 days 16:52:22 11697.000000
In [284]: nyc_sr_calls_trimmed['Request_Closing_Time'].mean()
Out[284]:Timedelta('0 days 04:18:51.832782865')
In [285]:by_burrough = nyc_sr_calls_trimmed.groupby(['Borough'])
by_burrough['Request_Closing_Time'].mean(numeric_only=None).dt.floor('s')
Out[285]:Borough
BRONX -13 days +03:21:47
BROOKLYN -13 days +03:18:24
MANHATTAN -36 days +14:38:51
QUEENS -16 days +07:37:05
STATEN ISLAND -44 days +22:01:24
Unspecified -87426 days +14:15:03
Name: Request_Closing_Time, dtype: timedelta64[ns]
In [286]:b = by_burrough.get_group('QUEENS')
b['Request_Closing_Time'].mean(numeric_only=False)
Out[286]:Timedelta('0 days 04:52:16.450111002')
如有任何帮助,我们将不胜感激。我不确定我没有考虑或考虑什么。谢谢。
“如果我用 get_group 命令挑出一个单独的自治市镇,那么我似乎得到了一个我认为正确的更正常的答案”。
既然你提到了上面的内容,我想尝试的是分别为每个自治市镇获取 Request_Closing_Time
的平均值,如下所示:
by_burrough["Request_Closing_Time"].apply(lambda df_group: df_group.mean(numeric_only=False))
或
by_burrough.apply(lambda df_group: df_group["Request_Closing_Time"].mean(numeric_only=False))