七周成为数据分析 python可视化7.127-7.130

本文通过使用Python的数据处理库pandas和数据可视化库matplotlib,对一份包含5031条职位信息的数据集进行了深入分析。从数据加载到数据清洗,再到数据统计与可视化,涵盖了数据的分布情况、城市分布、教育背景影响、公司ID分组统计等多个维度的分析。通过直方图、箱线图、密度图、面积图等多种图表形式,全面展示了数据的特征与规律。
>>> import pandas as pd
>>> df=pd.read_csv(r"C:\Users\Administrator\Desktop\position_gbk.csv",encoding='gbk')
>>> df.avg
0        8.0
1       12.5
2        5.0
3        7.0
4        2.5
5       12.5
6       10.5
7        6.0
8        6.0
9        3.0
10       5.5
11       3.0
12       2.5
13       5.0
14       6.0
15      12.5
16      12.5
17       7.0
18       2.5
19       3.5
20      14.0
21       4.5
22       7.0
23       5.0
24       5.0
25       2.5
26       4.5
27      15.0
28      12.5
29       7.0
        ... 
5001    30.0
5002    20.0
5003    11.5
5004     7.0
5005     6.5
5006     3.0
5007     6.0
5008     7.0
5009     7.5
5010     6.5
5011     5.0
5012     4.0
5013    12.5
5014     9.0
5015    11.5
5016    15.0
5017     9.0
5018    17.5
5019     4.5
5020     5.0
5021     7.0
5022    16.0
5023     3.5
5024     4.0
5025    11.5
5026    20.0
5027    22.5
5028    35.0
5029     5.0
5030    22.5
Name: avg, Length: 5031, dtype: float64
>>> df.avg.plot()
<matplotlib.axes._subplots.AxesSubplot object at 0x00000000038B4F28>
>>> import matplotlib as plt
>>> 
import matplotlib.pyplot as plt
>>> plt.show()
>>> df.avg.value_counts()
15.0    570
22.5    563
20.0    446
30.0    277
11.5    251
12.5    247
25.0    227
17.5    149
9.0     147
12.0    137
7.5     114
27.5    110
8.0     107
5.0      92
10.0     84
7.0      78
16.0     73
6.0      73
18.0     64
14.0     64
13.5     64
10.5     62
2.5      60
4.0      59
4.5      59
3.0      57
6.5      55
37.5     54
32.5     45
40.0     44
       ... 
18.5     11
14.5      9
21.0      8
15.5      8
29.0      4
55.0      4
20.5      4
60.0      4
75.0      4
30.5      4
23.5      3
22.0      3
31.5      3
33.0      2
28.5      2
42.5      2
26.0      2
29.5      2
31.0      1
34.0      1
52.5      1
25.5      1
65.0      1
28.0      1
43.0      1
36.5      1
2.0       1
32.0      1
48.0      1
70.0      1
Name: avg, Length: 79, dtype: int64
>>> df.avg.value_counts().sort_index().plot()
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000D496AC8>
>>> plt.show()
>>> df.avg.value_counts().sort_index().plot(kind='bar')
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000D496D30>
>>> plt.show()
>>> plt.show()
>>> df.avg.value_counts().sort_index().plot.bar()
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000FDFC7F0>
>>> plt.show()
>>> df.pivot_table(index='city',columns="education",values='avg',aggfunc='mean')
education         不限    博士         大专         本科         硕士
city                                                       
上海         14.051471  15.0  13.395455  17.987552  19.180000
北京         15.673387  25.0  12.339474  19.435802  19.759740
南京          7.000000   NaN   9.272727  11.327869  13.500000
厦门         12.500000   NaN   6.785714  11.805556  15.750000
天津          3.500000   NaN   5.500000   9.300000        NaN
广州          9.250000   NaN   8.988095  14.170259  14.571429
成都         10.562500   NaN  11.000000  13.520202  12.750000
杭州         18.269231   NaN  12.327586  16.823432  20.710526
武汉         10.950000   NaN  11.214286  11.500000   7.000000
深圳         15.100000  35.0  13.898936  18.532911  18.029412
苏州               NaN   NaN  14.600000  14.310345  16.833333
西安          8.666667   NaN   8.150000  12.208333   5.000000
长沙          7.642857   NaN   9.000000  10.633333   9.000000
>>> df.pivot_table(index='city',columns="education",values='avg',aggfunc='count')
education     不限   博士     大专      本科     硕士
city                                       
上海          68.0  3.0  110.0   723.0   75.0
北京         124.0  2.0  190.0  1877.0  154.0
南京           5.0  NaN   11.0    61.0    6.0
厦门           3.0  NaN    7.0    18.0    2.0
天津           1.0  NaN    4.0    15.0    NaN
广州          12.0  NaN   84.0   232.0    7.0
成都           8.0  NaN   26.0    99.0    2.0
杭州          26.0  NaN   58.0   303.0   19.0
武汉          10.0  NaN   14.0    44.0    1.0
深圳          20.0  1.0   94.0   395.0   17.0
苏州           NaN  NaN    5.0    29.0    3.0
西安           3.0  NaN   10.0    24.0    1.0
长沙           7.0  NaN    2.0    15.0    1.0
>>> df.pivot_table(index='city',columns="education",values='avg',aggfunc='count').plot.bar()
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014D03F98>
>>> plt.show()
>>> df.pivot_table(index='city',columns="education",values='avg',aggfunc='count').plot.bar(stacked=True)
<matplotlib.axes._subplots.AxesSubplot object at 0x00000000164D22E8>
>>> plt.show()
>>> df.pivot_table(index='city',columns="education",values='avg',aggfunc='count').plot.barh(stacked=True)
<matplotlib.axes._subplots.AxesSubplot object at 0x00000000164D2EB8>
>>> plt.show()
>>> df.avg.plot.hist()
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014FCF630>
>>> plt.show()
>>> df.avg.hist()
<matplotlib.axes._subplots.AxesSubplot object at 0x00000000164D2780>
>>> plt.show()
>>> df
      positionId city  companyId  firstType   ...    bottom top   avg workYear
0        2537336   上海       8581         技术   ...         7   9   8.0    应届毕业生
1        2427485   上海      23177         技术   ...        10  15  12.5    应届毕业生
2        2511252   上海      57561         设计   ...         4   6   5.0    应届毕业生
3        2427530   上海       7502      市场与销售   ...         6   8   7.0    应届毕业生
4        2245819   上海     130876         技术   ...         2   3   2.5    应届毕业生
5        2580543   上海      28095        金融类   ...        10  15  12.5    应届毕业生
6        1449715   上海       2002         技术   ...         7  14  10.5    应届毕业生
7        2568628   上海      21863  产品/需求/项目类   ...         5   7   6.0    应届毕业生
8        2416852   上海     121208         技术   ...         4   8   6.0    应届毕业生
9        1605795   上海      58109         技术   ...         2   4   3.0    应届毕业生
10       2157863   上海       1938         技术   ...         5   6   5.5    应届毕业生
11       2548985   上海      51223         设计   ...         2   4   3.0    应届毕业生
12       2392425   上海      36009         技术   ...         2   3   2.5    应届毕业生
13       1243515   上海      63922      市场与销售   ...         4   6   5.0    应届毕业生
14       2392372   上海      48294         技术   ...         4   8   6.0    应届毕业生
15       2427555   上海      23177         技术   ...        10  15  12.5    应届毕业生
16       2414480   上海       7502         技术   ...        10  15  12.5    应届毕业生
17       2320870   上海       2002         运营   ...         6   8   7.0    应届毕业生
18       2411279   上海     149677         金融   ...         2   3   2.5    应届毕业生
19       2527100   上海      57577        金融类   ...         3   4   3.5    应届毕业生
20       2561181   上海      93141         技术   ...        10  18  14.0    应届毕业生
21       2501433   上海     143807         金融   ...         3   6   4.5    应届毕业生
22       2517307   上海      73539      市场与销售   ...         6   8   7.0    应届毕业生
23       2388082   上海     146592      市场与销售   ...         4   6   5.0    应届毕业生
24       2531473   上海       7069  产品/需求/项目类   ...         4   6   5.0    应届毕业生
25       2168175   上海      25499      市场与销售   ...         2   3   2.5    应届毕业生
26       2463114   上海      47063         职能   ...         4   5   4.5    应届毕业生
27       2428072   上海     113080         技术   ...        10  20  15.0    应届毕业生
28       2427495   上海      23177         技术   ...        10  15  12.5    应届毕业生
29       2427570   上海       7502      市场与销售   ...         6   8   7.0    应届毕业生
...          ...  ...        ...        ...   ...       ...  ..   ...      ...
5001     1818358   苏州       3564         技术   ...        20  40  30.0    5-10年
5002      180764   苏州      16231         技术   ...        15  25  20.0    5-10年
5003     2019293   苏州     119552         运营   ...         8  15  11.5       不限
5004     2568821   苏州      39467  产品/需求/项目类   ...         6   8   7.0       不限
5005      480882   苏州      41687      市场与销售   ...         5   8   6.5       不限
5006     2338327   天津      81114      市场与销售   ...         2   4   3.0    应届毕业生
5007     1705654   天津      86563      市场与销售   ...         4   8   6.0     1-3年
5008     2413458   天津      31444         技术   ...         6   8   7.0     1-3年
5009     2574960   天津      94608   运营/编辑/客服   ...         6   9   7.5     1-3年
5010     2462767   天津      22182         运营   ...         5   8   6.5     1-3年
5011     2287749   天津      15955      市场与销售   ...         4   6   5.0     1-3年
5012     2522790   天津      81280         运营   ...         3   5   4.0     1-3年
5013     2413373   天津      31444         技术   ...        10  15  12.5     3-5年
5014     2562872   天津      47428         技术   ...         8  10   9.0     3-5年
5015     2538845   天津      19283  产品/需求/项目类   ...         8  15  11.5     3-5年
5016     1934925   天津     132876         技术   ...        10  20  15.0     3-5年
5017     1913388   天津     112213         技术   ...         6  12   9.0     3-5年
5018     2343332   天津      66805         技术   ...        15  20  17.5    5-10年
5019     1815094   天津      71192         设计   ...         3   6   4.5       不限
5020     2341255   天津     121291         设计   ...         4   6   5.0       不限
5021     2267253   天津     144782         技术   ...         6   8   7.0       不限
5022     2472967   天津      92444         技术   ...        12  20  16.0       不限
5023     2378458   天津     112379         职能   ...         3   4   3.5       不限
5024     2508187   天津      32877      市场与销售   ...         3   5   4.0       不限
5025      636485   天津      52887         技术   ...         8  15  11.5       不限
5026     2582910   北京       3786  开发/测试/运维类   ...        15  25  20.0     3-5年
5027     2583183   北京      59239  开发/测试/运维类   ...        15  30  22.5     3-5年
5028     1832950   北京      50702         技术   ...        30  40  35.0    5-10年
5029     2582349   北京     156832  市场/商务/销售类   ...         4   6   5.0       不限
5030     1757974   北京       1575         技术   ...        15  30  22.5       不限

[5031 rows x 15 columns]
>>> df.groupby('education').apply(lambda x:x.avg)
education      
不限         36      12.0
           45       9.0
           90      11.5
           107     15.0
           110      7.0
           114      3.5
           141      9.5
           165     15.0
           189     10.0
           195      7.0
           211     22.5
           223     20.0
           224     20.0
           296     15.0
           299     12.5
           304      5.5
           308     15.0
           329      6.5
           357     20.0
           370      4.0
           451     11.5
           486     15.0
           489     16.0
           490     12.5
           523     15.0
           533     20.0
           583     15.0
           588     15.0
           664     22.5
           669     16.0
                   ... 
硕士         4317    25.0
           4338    11.5
           4444    27.5
           4473    37.5
           4484    20.0
           4485    37.5
           4521    20.0
           4540    22.5
           4543    27.5
           4545    30.0
           4554    12.0
           4567    22.5
           4573    22.5
           4583    12.5
           4624     5.5
           4692    20.0
           4760    20.0
           4784    15.0
           4788     8.0
           4796    13.5
           4800    13.5
           4803    11.0
           4870     7.0
           4884     5.0
           4935     9.0
           4936    22.5
           4960     9.0
           4972     8.0
           4975    15.0
           4996    27.5
Name: avg, Length: 5031, dtype: float64
>>> df.groupby('education').apply(lambda x:x.avg).unstack()
           0     1     2     3     4     ...   5026  5027  5028  5029  5030
education                                ...                               
不限          NaN   NaN   NaN   NaN   NaN  ...    NaN   NaN   NaN   5.0   NaN
博士          NaN   NaN   NaN   NaN   NaN  ...    NaN   NaN   NaN   NaN   NaN
大专          NaN   NaN   NaN   NaN   NaN  ...    NaN   NaN   NaN   NaN   NaN
本科          NaN  12.5   5.0   7.0   2.5  ...   20.0  22.5  35.0   NaN  22.5
硕士          8.0   NaN   NaN   NaN   NaN  ...    NaN   NaN   NaN   NaN   NaN

[5 rows x 5031 columns]
>>> df.groupby('education').apply(lambda x:x.avg).unstack().T
education   不限  博士    大专    本科    硕士
0          NaN NaN   NaN   NaN   8.0
1          NaN NaN   NaN  12.5   NaN
2          NaN NaN   NaN   5.0   NaN
3          NaN NaN   NaN   7.0   NaN
4          NaN NaN   NaN   2.5   NaN
5          NaN NaN   NaN  12.5   NaN
6          NaN NaN   NaN  10.5   NaN
7          NaN NaN   NaN   NaN   6.0
8          NaN NaN   NaN   6.0   NaN
9          NaN NaN   NaN   3.0   NaN
10         NaN NaN   NaN   5.5   NaN
11         NaN NaN   NaN   3.0   NaN
12         NaN NaN   NaN   2.5   NaN
13         NaN NaN   NaN   5.0   NaN
14         NaN NaN   NaN   NaN   6.0
15         NaN NaN   NaN  12.5   NaN
16         NaN NaN   NaN   NaN  12.5
17         NaN NaN   NaN   7.0   NaN
18         NaN NaN   NaN   2.5   NaN
19         NaN NaN   NaN   3.5   NaN
20         NaN NaN   NaN  14.0   NaN
21         NaN NaN   NaN   NaN   4.5
22         NaN NaN   NaN   7.0   NaN
23         NaN NaN   NaN   5.0   NaN
24         NaN NaN   NaN   5.0   NaN
25         NaN NaN   NaN   2.5   NaN
26         NaN NaN   4.5   NaN   NaN
27         NaN NaN   NaN  15.0   NaN
28         NaN NaN   NaN  12.5   NaN
29         NaN NaN   NaN   7.0   NaN
...        ...  ..   ...   ...   ...
5001       NaN NaN   NaN  30.0   NaN
5002       NaN NaN  20.0   NaN   NaN
5003       NaN NaN   NaN  11.5   NaN
5004       NaN NaN   NaN   7.0   NaN
5005       NaN NaN   NaN   6.5   NaN
5006       NaN NaN   NaN   3.0   NaN
5007       NaN NaN   NaN   6.0   NaN
5008       NaN NaN   NaN   7.0   NaN
5009       NaN NaN   7.5   NaN   NaN
5010       NaN NaN   6.5   NaN   NaN
5011       NaN NaN   NaN   5.0   NaN
5012       NaN NaN   4.0   NaN   NaN
5013       NaN NaN   NaN  12.5   NaN
5014       NaN NaN   NaN   9.0   NaN
5015       NaN NaN   NaN  11.5   NaN
5016       NaN NaN   NaN  15.0   NaN
5017       NaN NaN   NaN   9.0   NaN
5018       NaN NaN   NaN  17.5   NaN
5019       NaN NaN   NaN   4.5   NaN
5020       NaN NaN   NaN   5.0   NaN
5021       NaN NaN   NaN   7.0   NaN
5022       NaN NaN   NaN  16.0   NaN
5023       3.5 NaN   NaN   NaN   NaN
5024       NaN NaN   4.0   NaN   NaN
5025       NaN NaN   NaN  11.5   NaN
5026       NaN NaN   NaN  20.0   NaN
5027       NaN NaN   NaN  22.5   NaN
5028       NaN NaN   NaN  35.0   NaN
5029       5.0 NaN   NaN   NaN   NaN
5030       NaN NaN   NaN  22.5   NaN

[5031 rows x 5 columns]
>>> df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.hist()
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014F75F98>
>>> plt.show()
>>> df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.hist(alpha=0.5)
<matplotlib.axes._subplots.AxesSubplot object at 0x000000001696D080>
>>> plt.show()
>>> df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.hist(alpha=0.5,stacked=True,bins=30)
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000016EECF28>
>>> plt.show()

>>> df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.hist(alpha=0.5,stacked=True,bins=30,orientation='horizontal')
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014F714E0>
>>> plt.show()
>>> print('#箱线图')
#箱线图
>>> df.groupby('education').apply(lambda x:x.avg).unstack()
           0     1     2     3     4     ...   5026  5027  5028  5029  5030
education                                ...                               
不限          NaN   NaN   NaN   NaN   NaN  ...    NaN   NaN   NaN   5.0   NaN
博士          NaN   NaN   NaN   NaN   NaN  ...    NaN   NaN   NaN   NaN   NaN
大专          NaN   NaN   NaN   NaN   NaN  ...    NaN   NaN   NaN   NaN   NaN
本科          NaN  12.5   5.0   7.0   2.5  ...   20.0  22.5  35.0   NaN  22.5
硕士          8.0   NaN   NaN   NaN   NaN  ...    NaN   NaN   NaN   NaN   NaN

[5 rows x 5031 columns]
>>> df.groupby('education').apply(lambda x:x.avg).unstack().T
education   不限  博士    大专    本科    硕士
0          NaN NaN   NaN   NaN   8.0
1          NaN NaN   NaN  12.5   NaN
2          NaN NaN   NaN   5.0   NaN
3          NaN NaN   NaN   7.0   NaN
4          NaN NaN   NaN   2.5   NaN
5          NaN NaN   NaN  12.5   NaN
6          NaN NaN   NaN  10.5   NaN
7          NaN NaN   NaN   NaN   6.0
8          NaN NaN   NaN   6.0   NaN
9          NaN NaN   NaN   3.0   NaN
10         NaN NaN   NaN   5.5   NaN
11         NaN NaN   NaN   3.0   NaN
12         NaN NaN   NaN   2.5   NaN
13         NaN NaN   NaN   5.0   NaN
14         NaN NaN   NaN   NaN   6.0
15         NaN NaN   NaN  12.5   NaN
16         NaN NaN   NaN   NaN  12.5
17         NaN NaN   NaN   7.0   NaN
18         NaN NaN   NaN   2.5   NaN
19         NaN NaN   NaN   3.5   NaN
20         NaN NaN   NaN  14.0   NaN
21         NaN NaN   NaN   NaN   4.5
22         NaN NaN   NaN   7.0   NaN
23         NaN NaN   NaN   5.0   NaN
24         NaN NaN   NaN   5.0   NaN
25         NaN NaN   NaN   2.5   NaN
26         NaN NaN   4.5   NaN   NaN
27         NaN NaN   NaN  15.0   NaN
28         NaN NaN   NaN  12.5   NaN
29         NaN NaN   NaN   7.0   NaN
...        ...  ..   ...   ...   ...
5001       NaN NaN   NaN  30.0   NaN
5002       NaN NaN  20.0   NaN   NaN
5003       NaN NaN   NaN  11.5   NaN
5004       NaN NaN   NaN   7.0   NaN
5005       NaN NaN   NaN   6.5   NaN
5006       NaN NaN   NaN   3.0   NaN
5007       NaN NaN   NaN   6.0   NaN
5008       NaN NaN   NaN   7.0   NaN
5009       NaN NaN   7.5   NaN   NaN
5010       NaN NaN   6.5   NaN   NaN
5011       NaN NaN   NaN   5.0   NaN
5012       NaN NaN   4.0   NaN   NaN
5013       NaN NaN   NaN  12.5   NaN
5014       NaN NaN   NaN   9.0   NaN
5015       NaN NaN   NaN  11.5   NaN
5016       NaN NaN   NaN  15.0   NaN
5017       NaN NaN   NaN   9.0   NaN
5018       NaN NaN   NaN  17.5   NaN
5019       NaN NaN   NaN   4.5   NaN
5020       NaN NaN   NaN   5.0   NaN
5021       NaN NaN   NaN   7.0   NaN
5022       NaN NaN   NaN  16.0   NaN
5023       3.5 NaN   NaN   NaN   NaN
5024       NaN NaN   4.0   NaN   NaN
5025       NaN NaN   NaN  11.5   NaN
5026       NaN NaN   NaN  20.0   NaN
5027       NaN NaN   NaN  22.5   NaN
5028       NaN NaN   NaN  35.0   NaN
5029       5.0 NaN   NaN   NaN   NaN
5030       NaN NaN   NaN  22.5   NaN

[5031 rows x 5 columns]

>>> df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.box()
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014F29978>
>>> plt.show()
>>> df.boxplot(column='avg',by='education')
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014AD2208>
>>> plt.show()
>>> print('密度图')
密度图
>>> df.avg.plot.kde()
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014F10550>
>>> plt.show()
>>> df.groupby('education').apply(lambda x:x.avg).unstack().T.plot.area()
<matplotlib.axes._subplots.AxesSubplot object at 0x00000000149C91D0>
>>> plt.show()
>>> print('面积图')
面积图
>>> df
      positionId city  companyId  firstType   ...    bottom top   avg workYear
0        2537336   上海       8581         技术   ...         7   9   8.0    应届毕业生
1        2427485   上海      23177         技术   ...        10  15  12.5    应届毕业生
2        2511252   上海      57561         设计   ...         4   6   5.0    应届毕业生
3        2427530   上海       7502      市场与销售   ...         6   8   7.0    应届毕业生
4        2245819   上海     130876         技术   ...         2   3   2.5    应届毕业生
5        2580543   上海      28095        金融类   ...        10  15  12.5    应届毕业生
6        1449715   上海       2002         技术   ...         7  14  10.5    应届毕业生
7        2568628   上海      21863  产品/需求/项目类   ...         5   7   6.0    应届毕业生
8        2416852   上海     121208         技术   ...         4   8   6.0    应届毕业生
9        1605795   上海      58109         技术   ...         2   4   3.0    应届毕业生
10       2157863   上海       1938         技术   ...         5   6   5.5    应届毕业生
11       2548985   上海      51223         设计   ...         2   4   3.0    应届毕业生
12       2392425   上海      36009         技术   ...         2   3   2.5    应届毕业生
13       1243515   上海      63922      市场与销售   ...         4   6   5.0    应届毕业生
14       2392372   上海      48294         技术   ...         4   8   6.0    应届毕业生
15       2427555   上海      23177         技术   ...        10  15  12.5    应届毕业生
16       2414480   上海       7502         技术   ...        10  15  12.5    应届毕业生
17       2320870   上海       2002         运营   ...         6   8   7.0    应届毕业生
18       2411279   上海     149677         金融   ...         2   3   2.5    应届毕业生
19       2527100   上海      57577        金融类   ...         3   4   3.5    应届毕业生
20       2561181   上海      93141         技术   ...        10  18  14.0    应届毕业生
21       2501433   上海     143807         金融   ...         3   6   4.5    应届毕业生
22       2517307   上海      73539      市场与销售   ...         6   8   7.0    应届毕业生
23       2388082   上海     146592      市场与销售   ...         4   6   5.0    应届毕业生
24       2531473   上海       7069  产品/需求/项目类   ...         4   6   5.0    应届毕业生
25       2168175   上海      25499      市场与销售   ...         2   3   2.5    应届毕业生
26       2463114   上海      47063         职能   ...         4   5   4.5    应届毕业生
27       2428072   上海     113080         技术   ...        10  20  15.0    应届毕业生
28       2427495   上海      23177         技术   ...        10  15  12.5    应届毕业生
29       2427570   上海       7502      市场与销售   ...         6   8   7.0    应届毕业生
...          ...  ...        ...        ...   ...       ...  ..   ...      ...
5001     1818358   苏州       3564         技术   ...        20  40  30.0    5-10年
5002      180764   苏州      16231         技术   ...        15  25  20.0    5-10年
5003     2019293   苏州     119552         运营   ...         8  15  11.5       不限
5004     2568821   苏州      39467  产品/需求/项目类   ...         6   8   7.0       不限
5005      480882   苏州      41687      市场与销售   ...         5   8   6.5       不限
5006     2338327   天津      81114      市场与销售   ...         2   4   3.0    应届毕业生
5007     1705654   天津      86563      市场与销售   ...         4   8   6.0     1-3年
5008     2413458   天津      31444         技术   ...         6   8   7.0     1-3年
5009     2574960   天津      94608   运营/编辑/客服   ...         6   9   7.5     1-3年
5010     2462767   天津      22182         运营   ...         5   8   6.5     1-3年
5011     2287749   天津      15955      市场与销售   ...         4   6   5.0     1-3年
5012     2522790   天津      81280         运营   ...         3   5   4.0     1-3年
5013     2413373   天津      31444         技术   ...        10  15  12.5     3-5年
5014     2562872   天津      47428         技术   ...         8  10   9.0     3-5年
5015     2538845   天津      19283  产品/需求/项目类   ...         8  15  11.5     3-5年
5016     1934925   天津     132876         技术   ...        10  20  15.0     3-5年
5017     1913388   天津     112213         技术   ...         6  12   9.0     3-5年
5018     2343332   天津      66805         技术   ...        15  20  17.5    5-10年
5019     1815094   天津      71192         设计   ...         3   6   4.5       不限
5020     2341255   天津     121291         设计   ...         4   6   5.0       不限
5021     2267253   天津     144782         技术   ...         6   8   7.0       不限
5022     2472967   天津      92444         技术   ...        12  20  16.0       不限
5023     2378458   天津     112379         职能   ...         3   4   3.5       不限
5024     2508187   天津      32877      市场与销售   ...         3   5   4.0       不限
5025      636485   天津      52887         技术   ...         8  15  11.5       不限
5026     2582910   北京       3786  开发/测试/运维类   ...        15  25  20.0     3-5年
5027     2583183   北京      59239  开发/测试/运维类   ...        15  30  22.5     3-5年
5028     1832950   北京      50702         技术   ...        30  40  35.0    5-10年
5029     2582349   北京     156832  市场/商务/销售类   ...         4   6   5.0       不限
5030     1757974   北京       1575         技术   ...        15  30  22.5       不限

[5031 rows x 15 columns]
>>> df.pivot_table(index='avg',columns='education',aggfunc='count',values='positionId')
education    不限   博士    大专     本科    硕士
avg                                    
1.5         5.0  NaN   4.0   12.0   1.0
2.0         NaN  NaN   NaN    NaN   1.0
2.5        10.0  NaN   7.0   39.0   4.0
3.0         8.0  NaN   8.0   38.0   3.0
3.5         6.0  NaN  11.0   20.0   3.0
4.0        13.0  NaN  24.0   18.0   4.0
4.5         4.0  NaN  22.0   28.0   5.0
5.0        13.0  NaN  34.0   41.0   4.0
5.5         2.0  NaN  10.0   26.0   1.0
6.0         1.0  NaN  23.0   44.0   5.0
6.5         7.0  NaN  13.0   33.0   2.0
7.0         5.0  NaN  20.0   46.0   7.0
7.5         7.0  NaN  25.0   78.0   4.0
8.0         5.0  NaN  17.0   76.0   9.0
8.5         NaN  NaN  11.0   13.0   3.0
9.0         5.0  NaN  35.0  101.0   6.0
9.5         4.0  NaN   4.0   22.0   5.0
10.0        2.0  1.0  19.0   61.0   1.0
10.5        6.0  NaN  11.0   43.0   2.0
11.0        1.0  NaN   7.0   20.0   2.0
11.5       19.0  NaN  39.0  184.0   9.0
12.0       10.0  NaN  16.0  106.0   5.0
12.5       17.0  NaN  31.0  183.0  16.0
13.0        NaN  NaN   3.0   10.0   NaN
13.5        NaN  NaN  12.0   47.0   5.0
14.0        3.0  NaN   6.0   52.0   3.0
14.5        1.0  NaN   3.0    4.0   1.0
15.0       23.0  1.0  65.0  450.0  31.0
15.5        NaN  NaN   1.0    6.0   1.0
16.0        6.0  NaN   9.0   56.0   2.0
...         ...  ...   ...    ...   ...
26.5        NaN  NaN   NaN   19.0   2.0
27.0        NaN  NaN   1.0   12.0   1.0
27.5        NaN  1.0   1.0   98.0  10.0
28.0        1.0  NaN   NaN    NaN   NaN
28.5        NaN  NaN   1.0    1.0   NaN
29.0        NaN  NaN   NaN    3.0   1.0
29.5        1.0  NaN   NaN    1.0   NaN
30.0       13.0  NaN   5.0  237.0  22.0
30.5        2.0  NaN   NaN    2.0   NaN
31.0        NaN  NaN   NaN    1.0   NaN
31.5        NaN  NaN   NaN    2.0   1.0
32.0        NaN  NaN   NaN    1.0   NaN
32.5        1.0  NaN   3.0   38.0   3.0
33.0        NaN  NaN   NaN    2.0   NaN
34.0        NaN  NaN   NaN    1.0   NaN
35.0        7.0  1.0   1.0   28.0   NaN
36.5        NaN  NaN   NaN    1.0   NaN
37.5        2.0  NaN   2.0   39.0  11.0
40.0        1.0  NaN   1.0   39.0   3.0
42.5        NaN  NaN   NaN    2.0   NaN
43.0        NaN  NaN   NaN    1.0   NaN
45.0        NaN  NaN   1.0   22.0   5.0
48.0        NaN  NaN   NaN    1.0   NaN
50.0        NaN  NaN   NaN   10.0   6.0
52.5        NaN  NaN   NaN    1.0   NaN
55.0        NaN  NaN   NaN    4.0   NaN
60.0        NaN  NaN   1.0    2.0   1.0
65.0        NaN  NaN   NaN    1.0   NaN
70.0        NaN  NaN   NaN    1.0   NaN
75.0        NaN  NaN   NaN    3.0   1.0

[79 rows x 5 columns]
>>> df.pivot_table(index='avg',columns='education',aggfunc='count',values='positionId')
education    不限   博士    大专     本科    硕士
avg                                    
1.5         5.0  NaN   4.0   12.0   1.0
2.0         NaN  NaN   NaN    NaN   1.0
2.5        10.0  NaN   7.0   39.0   4.0
3.0         8.0  NaN   8.0   38.0   3.0
3.5         6.0  NaN  11.0   20.0   3.0
4.0        13.0  NaN  24.0   18.0   4.0
4.5         4.0  NaN  22.0   28.0   5.0
5.0        13.0  NaN  34.0   41.0   4.0
5.5         2.0  NaN  10.0   26.0   1.0
6.0         1.0  NaN  23.0   44.0   5.0
6.5         7.0  NaN  13.0   33.0   2.0
7.0         5.0  NaN  20.0   46.0   7.0
7.5         7.0  NaN  25.0   78.0   4.0
8.0         5.0  NaN  17.0   76.0   9.0
8.5         NaN  NaN  11.0   13.0   3.0
9.0         5.0  NaN  35.0  101.0   6.0
9.5         4.0  NaN   4.0   22.0   5.0
10.0        2.0  1.0  19.0   61.0   1.0
10.5        6.0  NaN  11.0   43.0   2.0
11.0        1.0  NaN   7.0   20.0   2.0
11.5       19.0  NaN  39.0  184.0   9.0
12.0       10.0  NaN  16.0  106.0   5.0
12.5       17.0  NaN  31.0  183.0  16.0
13.0        NaN  NaN   3.0   10.0   NaN
13.5        NaN  NaN  12.0   47.0   5.0
14.0        3.0  NaN   6.0   52.0   3.0
14.5        1.0  NaN   3.0    4.0   1.0
15.0       23.0  1.0  65.0  450.0  31.0
15.5        NaN  NaN   1.0    6.0   1.0
16.0        6.0  NaN   9.0   56.0   2.0
...         ...  ...   ...    ...   ...
26.5        NaN  NaN   NaN   19.0   2.0
27.0        NaN  NaN   1.0   12.0   1.0
27.5        NaN  1.0   1.0   98.0  10.0
28.0        1.0  NaN   NaN    NaN   NaN
28.5        NaN  NaN   1.0    1.0   NaN
29.0        NaN  NaN   NaN    3.0   1.0
29.5        1.0  NaN   NaN    1.0   NaN
30.0       13.0  NaN   5.0  237.0  22.0
30.5        2.0  NaN   NaN    2.0   NaN
31.0        NaN  NaN   NaN    1.0   NaN
31.5        NaN  NaN   NaN    2.0   1.0
32.0        NaN  NaN   NaN    1.0   NaN
32.5        1.0  NaN   3.0   38.0   3.0
33.0        NaN  NaN   NaN    2.0   NaN
34.0        NaN  NaN   NaN    1.0   NaN
35.0        7.0  1.0   1.0   28.0   NaN
36.5        NaN  NaN   NaN    1.0   NaN
37.5        2.0  NaN   2.0   39.0  11.0
40.0        1.0  NaN   1.0   39.0   3.0
42.5        NaN  NaN   NaN    2.0   NaN
43.0        NaN  NaN   NaN    1.0   NaN
45.0        NaN  NaN   1.0   22.0   5.0
48.0        NaN  NaN   NaN    1.0   NaN
50.0        NaN  NaN   NaN   10.0   6.0
52.5        NaN  NaN   NaN    1.0   NaN
55.0        NaN  NaN   NaN    4.0   NaN
60.0        NaN  NaN   1.0    2.0   1.0
65.0        NaN  NaN   NaN    1.0   NaN
70.0        NaN  NaN   NaN    1.0   NaN
75.0        NaN  NaN   NaN    3.0   1.0

[79 rows x 5 columns]
>>> df.pivot_table(index='avg',columns='education',aggfunc='count',values='positionId').plot.area()
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014CD7128>
>>> plt.show()
>>> df.groupby('companyId').aggregate(['mean','count']).avg
                mean  count
companyId                  
43         11.500000      1
53         16.250000      4
62         17.125000     32
70         27.500000      1
91         29.227273     11
94         17.500000      2
101        20.250000      2
108        24.444444      9
121        20.750000      2
129        18.566667     15
133        20.000000     13
138        10.000000      1
146        11.500000      1
147        25.000000      2
165        17.000000      4
175        22.500000      2
179        20.000000      2
228        15.000000      1
230        11.250000      2
250        15.500000      1
270        16.000000      1
273         8.250000      2
280         9.250000      2
283        12.500000      1
285        22.500000      1
293        30.000000      1
320        11.500000      1
323        25.000000      2
325        19.821429     14
329        18.208333     36
...              ...    ...
154766      5.833333      3
154782     45.000000      1
154804      5.000000      1
154915      4.000000      1
155015      7.500000      1
155137     25.000000      1
155154     25.000000      1
155256     12.000000      1
155257      7.000000      1
155494     12.500000      3
155801      4.000000      1
156167     17.000000      2
156192     11.500000      1
156469      3.500000      1
156484     17.500000      1
156832      5.000000      1
156865      2.500000      1
156946      9.000000      1
156951     15.000000      1
156979     22.500000      1
157159     15.000000      1
157236      7.000000      1
157345      4.500000      1
157392     30.000000      1
157418     16.333333      3
157426      9.000000      1
157453      6.000000      1
157647      5.000000      1
157665      3.000000      1
157744      4.500000      1

[2296 rows x 2 columns]
>>> df.groupby('companyId').aggregate(['mean','count','max']).avg
                mean  count   max
companyId                        
43         11.500000      1  11.5
53         16.250000      4  20.0
62         17.125000     32  37.5
70         27.500000      1  27.5
91         29.227273     11  45.0
94         17.500000      2  27.5
101        20.250000      2  22.5
108        24.444444      9  30.0
121        20.750000      2  25.0
129        18.566667     15  27.5
133        20.000000     13  30.0
138        10.000000      1  10.0
146        11.500000      1  11.5
147        25.000000      2  25.0
165        17.000000      4  20.0
175        22.500000      2  22.5
179        20.000000      2  25.0
228        15.000000      1  15.0
230        11.250000      2  12.0
250        15.500000      1  15.5
270        16.000000      1  16.0
273         8.250000      2   9.0
280         9.250000      2  15.0
283        12.500000      1  12.5
285        22.500000      1  22.5
293        30.000000      1  30.0
320        11.500000      1  11.5
323        25.000000      2  27.5
325        19.821429     14  40.0
329        18.208333     36  32.5
...              ...    ...   ...
154766      5.833333      3  11.5
154782     45.000000      1  45.0
154804      5.000000      1   5.0
154915      4.000000      1   4.0
155015      7.500000      1   7.5
155137     25.000000      1  25.0
155154     25.000000      1  25.0
155256     12.000000      1  12.0
155257      7.000000      1   7.0
155494     12.500000      3  12.5
155801      4.000000      1   4.0
156167     17.000000      2  30.0
156192     11.500000      1  11.5
156469      3.500000      1   3.5
156484     17.500000      1  17.5
156832      5.000000      1   5.0
156865      2.500000      1   2.5
156946      9.000000      1   9.0
156951     15.000000      1  15.0
156979     22.500000      1  22.5
157159     15.000000      1  15.0
157236      7.000000      1   7.0
157345      4.500000      1   4.5
157392     30.000000      1  30.0
157418     16.333333      3  22.5
157426      9.000000      1   9.0
157453      6.000000      1   6.0
157647      5.000000      1   5.0
157665      3.000000      1   3.0
157744      4.500000      1   4.5

[2296 rows x 3 columns]
>>> df.groupby('companyId').aggregate(['mean','count','max']).avg.plot.scatter(x='mean',y='count')
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014C26D68>
>>> plt.show()
>>> df.groupby('companyId').aggregate(['mean','count','max']).avg.plot.scatter(x='mean',y='max')
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014F29278>
>>> matrix=df.groupby('companyId').aggregate(['mean','count','max']).avg
>>> matrix.head()
                mean  count   max
companyId                        
43         11.500000      1  11.5
53         16.250000      4  20.0
62         17.125000     32  37.5
70         27.500000      1  27.5
91         29.227273     11  45.0
>>> pd.plotting.scatter_matrix(matrix)
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000000001682EDA0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x000000000FDF9E10>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x00000000165183C8>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x0000000016546940>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000016869EB8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000016D47F98>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x00000000149F9550>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000014A0AB00>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000014A0AB38>]],
      dtype=object)
>>> plt.show()
>>> pd.plotting.scatter_matrix(matrix.query())
Traceback (most recent call last):
  File "<pyshell#76>", line 1, in <module>
    pd.plotting.scatter_matrix(matrix.query())
TypeError: query() missing 1 required positional argument: 'expr'
>>> pd.plotting.scatter_matrix(matrix.query('count>50'))
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014C26C50>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000017426550>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x000000001744B978>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x0000000017470EF0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x00000000192414A8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000019267A20>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x000000001928EF98>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000016846208>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x00000000168465C0>]],
      dtype=object)
>>> plt.show()
>>> pd.plotting.scatter_matrix(matrix.query('count<50'))
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000000001682E470>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000017494D30>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000014AC6B38>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x0000000014A9D0F0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000014C6A668>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x00000000164D6BE0>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x000000000FDE4198>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000014984748>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000014984780>]],
      dtype=object)
>>> plt.show()
>>> pd.plotting.scatter_matrix(matrix.query('count<50'),diagonal='kde')
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x00000000168ACDA0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000016785CF8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x00000000167B52B0>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x0000000016ADC828>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000016B05DA0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000016B37358>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x0000000016B5D8D0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000016B87E80>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x0000000016B87EB8>]],
      dtype=object)
>>> plt.show()
>>> df.city.value_counts()
北京    2347
上海     979
深圳     527
杭州     406
广州     335
成都     135
南京      83
武汉      69
西安      38
苏州      37
厦门      30
长沙      25
天津      20
Name: city, dtype: int64
>>> plt.show()
>>> df.city.value_counts().plot.pie()
<matplotlib.axes._subplots.AxesSubplot object at 0x000000001675D080>
>>> plt.show()
>>> df.city.value_counts().plot.pie(figsize=(6,6))
<matplotlib.axes._subplots.AxesSubplot object at 0x0000000016C72828>
>>> plt.show()
>>> 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值