问题
解决方案
对于任何涉及到统计、时间序列以及其他相关技术的数据分析问题,都可以考虑使用 Pandas库 。
为了让你先体验下,下面是一个使用Pandas来分析芝加哥城市的 老鼠和啮齿类动物数据库 的例子。 在我写这篇文章的时候,这个数据库是一个拥有大概74,000行数据的CSV文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
>>> import pandas >>> # Read a CSV file, skipping last line >>> rats = pandas.read_csv( 'rats.csv' , skip_footer = 1 ) >>> rats < class 'pandas.core.frame.DataFrame' > Int64Index: 74055 entries, 0 to 74054 Data columns: Creation Date 74055 non - null values Status 74055 non - null values Completion Date 72154 non - null values Service Request Number 74055 non - null values Type of Service Request 74055 non - null values Number of Premises Baited 65804 non - null values Number of Premises with Garbage 65600 non - null values Number of Premises with Rats 65752 non - null values Current Activity 66041 non - null values Most Recent Action 66023 non - null values Street Address 74055 non - null values ZIP Code 73584 non - null values X Coordinate 74043 non - null values Y Coordinate 74043 non - null values Ward 74044 non - null values Police District 74044 non - null values Community Area 74044 non - null values Latitude 74043 non - null values Longitude 74043 non - null values Location 74043 non - null values dtypes: float64( 11 ), object ( 9 ) >>> # Investigate range of values for a certain field >>> rats[ 'Current Activity' ].unique() array([nan, Dispatch Crew, Request Sanitation Inspector], dtype = object ) >>> # Filter the data >>> crew_dispatched = rats[rats[ 'Current Activity' ] = = 'Dispatch Crew' ] >>> len (crew_dispatched) 65676 >>> >>> # Find 10 most rat-infested ZIP codes in Chicago >>> crew_dispatched[ 'ZIP Code' ].value_counts()[: 10 ] 60647 3837 60618 3530 60614 3284 60629 3251 60636 2801 60657 2465 60641 2238 60609 2206 60651 2152 60632 2071 >>> >>> # Group by completion date >>> dates = crew_dispatched.groupby( 'Completion Date' ) <pandas.core.groupby.DataFrameGroupBy object at 0x10d0a2a10 > >>> len (dates) 472 >>> >>> # Determine counts on each day >>> date_counts = dates.size() >>> date_counts[ 0 : 10 ] Completion Date 01 / 03 / 2011 4 01 / 03 / 2012 125 01 / 04 / 2011 54 01 / 04 / 2012 38 01 / 05 / 2011 78 01 / 05 / 2012 100 01 / 06 / 2011 100 01 / 06 / 2012 58 01 / 07 / 2011 1 01 / 09 / 2012 12 >>> >>> # Sort the counts >>> date_counts.sort() >>> date_counts[ - 10 :] Completion Date 10 / 12 / 2012 313 10 / 21 / 2011 314 09 / 20 / 2011 316 10 / 26 / 2011 319 02 / 22 / 2011 325 10 / 26 / 2012 333 03 / 17 / 2011 336 10 / 13 / 2011 378 10 / 14 / 2011 391 10 / 07 / 2011 457 >>> |
嗯,看样子2011年10月7日对老鼠们来说是个很忙碌的日子啊!^_^
讨论
Pandas是一个拥有很多特性的大型函数库,我在这里不可能介绍完。 但是只要你需要去分析大型数据集合、对数据分组、计算各种统计量或其他类似任务的话,这个函数库真的值得你去看一看。
以上就是Python 数据的累加与统计的方法的详细内容,更多关于Python 数据的累加与统计的资料请关注服务器之家其它相关文章!
原文链接:https://python3-cookbook.readthedocs.io/zh_CN/latest/c06/p13_summarizing_and_perform_statistics.html