day100_12_4DataFrame和matplotlib模块

一。Dataframe的分组。

  再网页表格数据 的分析中,可以使用以下语句进行爬取表格。

res = pd.read_html('https://baike.baidu.com/item/NBA%E6%80%BB%E5%86%A0%E5%86%9B/2173192?fr=aladdin')  ### 返回的是一个列表  列表中是当前页面的所有表格数据

  read_html可以爬取表格,取出其中所需要的表格进行处理:

champion = res[0]
champion.columns = champion.iloc[0]  #### 将第一行的数据 赋值给 列名
champion.drop([0], inplace=True) #### 将第一行数据 删除掉

  对于这段数据需要进行分组。分组之后进行计数即可。

champion.groupby('冠军').groups
champion.groupby('冠军').size().sort_values(ascending=False)

  如果需要统计其他数据,只需要再groupbt中添加列表。

champion.groupby(['冠军', 'FMVP']).size()

二。DataFrame的时间数据处理。

  处理时间需要导入一个模块。

import dateutil

  将时间格式转化成元组

dateutil.parser.parse("2019 Jan 2nd") 
datetime.datetime(2019, 1, 2, 0, 0)

  转化列表时间

pd.to_datetime(['2018-01-01', '2019-02-02'])
DatetimeIndex(['2018-01-01', '2019-02-02'], dtype='datetime64[ns]', freq=None)

  生成时间序列

pd.date_range("2019-1-1","2019-2-2", freq='M')
DatetimeIndex(['2019-01-31'], dtype='datetime64[ns]', freq='M')

三。matplotlib

  首先导入这个模块

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

  将表格支持中文:

#### windows下好使
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

  1.折线图

  首先需要生成一个plot画布

a = [3,1,10,6]  ### 默认显示Y轴的值
plt.plot(a)   #### plot()画折现图的函数
plt.show()   #### 显示画的图表

  需要将一个列表放入该画布展示。

  如果需要同时键入x轴和y轴,可以输入两个:

plt.plot(x, y, color='k', marker='D', linestyle=':')   ### 画图
plt.show()       ### 显示

  如果需要设置画布大小可以使用以下语句:

x = [2,5,7,10]
y = [1,2,3,4]

plt.figure(figsize=(10,6))  #### 设置画布大小

  可以设置图的标签和x轴y轴

plt.title('title标题', fontsize=20, color='red')  #### 设置图表的标题
plt.xlabel('x轴', fontsize=20)   #### 设置x轴的值
plt.ylabel('y轴', fontsize=20)   #### 设置y轴的值

  其中设置的点数可以通过color,marker,linestyle进行设置。也可以通过plot?进行查询。

  

  2.柱状图

  首先获取数据:

df = pd.read_csv('./douban_movie.csv')
df.head()

  将获取到的数据进行处理:

res = df.groupby('产地').size().sort_values(ascending=False)

  再生成一个bar柱状图,进行个性化设计

x = res.index
y = res.values
plt.figure(figsize=(20,6))

plt.title('每个国家或者地区的电影数量', fontsize=20)
plt.xticks(rotation=90, fontsize=15, color='red')   ##### 设置x轴字体的大小和颜色
plt.xlabel('产地', fontsize=20)

plt.yticks(fontsize=15)
plt.ylabel('数量', fontsize=20)

  如果需要在每个柱状上显示数字,需要进行xy轴的定位

for a, b in zip(x,y):
#     plt.text?
    plt.text(a, b+100, b, horizontalalignment='center', fontsize=13)

plt.bar(x, y)
# plt.savefig?
plt.show()

 3.曲线图

  绘制曲线图数据处理:

res = df.groupby(['年代']).size().sort_index()  ### sort_values 按照值进行排序  sort_index 按照索引进行排序
res = res[:-2]

  曲线图主要是plot,数据比较多的情况:

x = res.index
y = res.values
plt.figure(figsize=(10,6))
plt.title('历年电影上映数量', fontsize=20, color='red')
plt.xlabel('年代', fontsize=15)
plt.xticks(fontsize=13, color='green')
plt.ylabel('数量', fontsize=20, color='blue')
plt.yticks(color='blue', fontsize=13)
plt.plot(x, y)
plt.show()

  4.绘制饼图:

  饼图中的重点在于使用cut

  cut中传入两个参数,返回值会根据第二个参数切分区域,并将第一个参数中的数值匹配这些区域,如果匹配不上就返回nan。

pd.cut(np.array([1, 7, 5, 4, 6, 3]), [1,3,5])
[NaN, NaN, (3.0, 5.0], (3.0, 5.0], NaN, (1.0, 3.0]]
Categories (2, interval[int64]): [(1, 3] < (3, 5]]

  所以,需要将数据获取,放入其中进行切分:

df_res = df['时长']
res = pd.cut(df_res, [0,60,90,120, 140, 1000]) ### df_res 是待分割的源数据  [0,60,90,120, 140, 1000] 是区间 左开右闭

  输出的值是所有电影的归类,这个时候需要对其value_count获取值计数。

res = res.value_counts()
(90, 120]      16578
(0, 60]        10324
(60, 90]        7727
(120, 140]      2718
(140, 1000]     1386

  最后对数据进行个性化设置:

x = res.index
y = res.values
plt.title('电影时长分布饼图', fontsize=20)

patch, l_text, p_text = plt.pie(y, labels = x, autopct='%.2f%%')

for p in p_text:
    p.set_size(15)
    p.set_color('white')

for l in l_text:
    l.set_size(13)
    l.set_color('r')
    
plt.show()

  hist:直方图。

  画图工具:

  echarts 和 highcharts 。

  

[{"metadata":{"trusted":false},"cell_type":"code","source":"x = [2,5,7,10]\ny = [1,2,3,4]\n\nplt.figure(figsize=(10,6))  #### 设置画布大小\n\nplt.title('title标题', fontsize=20, color='red')  #### 设置图表的标题\nplt.xlabel('x轴', fontsize=20)   #### 设置x轴的值\nplt.ylabel('y轴', fontsize=20)   #### 设置y轴的值\n\nplt.plot(x, y, color='k', marker='D', linestyle=':')   ### 画图\nplt.show()       ### 显示","execution_count":33,"outputs":[{"data":{"image/png":"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kqSiVldXx+LFiwGICGbPns37778PQJcuXbKM1mwsaJIkqWjNnDmTHXbYgUsvvRSAAw88kKeeeqrFTv5fVRY0SZJUdN555x0gN0JWWVlJ7969gdwIWkRkGa0gLGiSJKmonH766Wy33XbMnDkTgKuuuorDDjss41SF1SbrAJIkSc888wybbrop3bp145vf/CYbbrgh7du3zzpWZhxBkyRJmXrvvfcYNGgQF1xwAQDbbbcdP/3pTy1okiRJhfTGG29w3XXXAdCjRw9Gjx7NqaeemnGq4mFBkyRJBXfhhRdy0kknMWvWLAAOO+ywVrtkxpqwoEmSpGb3ySef8Itf/IIXXngBgDPOOIOXXnqJ9dZbL+NkxcmLBCRJUrOrq6vjqquuok+fPmy99dZ069Yt60hFzYImSZKaxWWXXcZjjz3GjTfeSNeuXZkyZYojZqvIU5ySJKnJLFq0iJQSAHPnzmX27NnMnz8fwHK2GixokiSpSbz44ov07duXcePGAXDKKacwduxYOnTokHGylseCJkmS1lhdXR1Tp04FoG/fvgwaNIh1110XoCS2ZGouzkGTJElr7Jvf/CavvPIKzz77LO3ateOWW27JOlKrYEGTJEmrLKVEdXU1Q4YMoW3bthx77LHMmjXL0bIm5ilOSZK0yh599FH23ntvbrzxRgD2339/jjzySMrKrBRNyX+akiRppSZOnMidd94JwJAhQ7jxxhs58sgjM07VukX9pbCtRWVlZaqpqck6hiRJrcbQoUN59913eeGFFzyV2cQiYmJKqbLh446gSZKkz3n77bf54Q9/yMyZMwG46qqrePLJJy1nBWRBkyRJn/Pxxx9z44038tRTTwHQp0+fpUtnqDC8ilOSpBKXUmLkyJG0bduWc889l6985StMmzbNlf8zZEGTJKlELVy4kHXWWYeIYObMmbRr127pc5azbHmKU5KkEnTffffRs2dP3njjDQCuuOIKLr300oxTqZ4FTZKkErFgwQI++OADALbddlt233136urqALdlKjae4pQkqQTU1dWx4447MmDAAG655RY23nhjt2UqYhY0SZJaqdraWh588EH22WcfysrKGDlyJL169co6llaBpzglSWqlrrrqKr72ta/x9NNPA/C9732PqqqqjFNpVTiCJklSK5FS4t5772W99dZj11135eijj2bDDTeksnK5hepV5CxokiS1EosXL+b4449nxx13ZNddd6WiooLDDz8861haA57ilCSpBZs0aRLHH388tbW1tGvXjnvvvZebbrop61haSxY0SZJasJdffplbbrmF119/HYD+/ft/bsFZtUyZFrSI2CAi9omIDbPMIUlSSzF37ly+853vcPXVVwNwxBFH8MYbb/DlL38542RqSpkVtIhYHxgLDAKqI6JbI8e0iYi3I+Kh/Ne2BQ8qSVIRWLhwIQAVFRV88MEHzJo1C4CysjI6d+6cZTQ1gywvEtgOODml9GS+rO0A3NfIMTellH5Z8HSSJBWJyy+/nHPPPZeXXnqJjh07Mn78eFf+b+UyG0FLKT2cL2e7kxtFm9DIYYOBYRHxdERcHRFedSpJKgkff/wxs2fPBmD77bdn3333ZcGCBYDbMpWCrOegBfAt4BNgcSOH/AsYmlIaBLQFDljB6/wwImoiombGjBnNlleSpEL46KOP2GKLLTj//PMB2GWXXbjyyivp2rVrxslUKJkWtJRzAvAccHAjhzyXUnovf7sG6LeC17kipVSZUqrs1m25qWySJBW9+fPn89BDDwHQtWtXTj/9dI444ohsQykzWV4k8MuIGJ6/2wWY2chh10fE9hFRDhwKPFuwgJIkFdCvfvUr9ttvP+rPBJ188slsu63XxpWqLEfQrgCOjohHgHJgakSc3eCY3wHXA5OACSml+wucUZKkZrFkyRKuvfZa3njjDSBXyMaNG4dnggQQKaWsMzSpysrKVFNTk3UMSZJW6r333mPzzTfnlFNO4fe//33WcZSRiJiYUlpus1SvipQkqUDGjRvHww8/zDnnnEOPHj2oqalhq622yjqWipBbPUmSVCCPP/44o0ePZs6cOQBsvfXWLpmhRlnQJElqJu+88w5Dhw7lscceA3IXArz44ouu/K8vZEGTJKmJ1W/LtMEGGzBjxgymT58OQIcOHWjbtm2W0dRCOAdNkqQm9POf/5zHH3+cCRMm0LFjRyZNmuRpTK02C5okSWvp7bffZpNNNqG8vJwddtiB9u3bs3jxYtq1a2c50xqxoEmStBYmTpzILrvswnXXXce3v/1tvvOd72QdSa2Ac9AkSVpNH374IU899RQAAwcO5Ne//jVDhgzJOJVaExeqlSRpNe2zzz68/vrrvP7665SXl2cdRy3YihaqdQRNkqQvMHfuXC688ELmzp0LwJ/+9Cfuvvtuy5majXPQJEn6As899xwnn3wyPXr04Mgjj2TgwIFZR1IrZ0GTJKkR1157LXPmzOGkk05il112YfLkyWyzzTZZx1KJ8BSnJEmNuPvuu7nzzjupn6ttOVMhWdAkSSK3XMbgwYOZNm0aANdccw3jx493HTNlwoImSSpZKSUWLFgA5LZl+vTTT5cWtM6dO1vOlBnnoEmSSlJKiQMPPJBu3bpx3XXXsdlmmzF58mRLmYqCBU2SVFLefPNNNttsMyKCIUOGsO666y59znKmYmFBkySVjJtvvpmjjjqKiRMnMnDgQE499dSsI0mNcg6aJKlVe+ONN3jxxRcB2H///TnrrLPYfPPNM04lrZxbPUmSWq3a2lo222wzttpqK+69996s40jLcasnSVJJmDFjBn/+859JKVFeXs7f//53rrnmmqxjSavFgiZJalXGjBnDyJEjmTRpEgB77rknG2+8ccappNVjQZMktWiLFi3ivPPO4/bbbwdg+PDhvPjii+6XqRbNgiZJatHatGnDTTfdxIMPPrj0/pe//OWMU0lrx4ImSWpxxowZw2677cbChQspKyvj8ccf5+KLL846ltRkLGiSpBahtraWRYsWAdC+fXtqa2v54IMPgNy2TFJrYkGTJBW92bNns/3223PhhRcCMHToUJ544gl69eqVcTKpeVjQJElFKaXEm2++CcC6665LVVUV/fv3B3JbMrktk1ozC5okqSj99re/ZbvttuPDDz8E4OKLL+aQQw7JOJVUGO7FKUkqGjU1NWyyySb06NGDI488ko022sj5ZSpJjqBJkorC9OnT2XXXXTn//PMBGDBgACeccALrrLNOxsmkwnMETZKUmddff53q6mqOO+44NtpoI26//XaGDBmSdSwpc46gSZIyc/nll3PyySfz8ccfA3DggQey7rrrZpxKyp4FTZJUMJ988gn//d//zTPPPAPAaaedxquvvsoGG2yQcTKpuFjQJEkFExHccMMNPPHEEwBssMEG9OjRI+NUUvFxDpokqVldeumlPPDAA9x666106dKF//znP16ZKX0BR9AkSU1uwYIFpJQAqKuro66ujvnz5wNuyyStCguaJKlJvfzyy/Tt25cxY8YAcOKJJ3LHHXdQUVGRcTKp5bCgSZLWWm1tLVOmTAFgiy22YI899qB79+4AbskkrQHnoEmS1tqRRx7Jc889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vAP8NiKWrmuRn3eWWTmTpNVx++238/Wvf50xY8YAWM4kFY21LWinA/+JiDERMSy8zElSC7BkSW474cMOO4w77riDgw46KONEkvR5a1zQUkqDgS8DfyI3kf8u4K2IOCMiNmmifJLUpO666y622WYbZsyYQURwyCGHuISGpKKzNiNopJReSyn9GugD7ANUA78ApkTEHRExdGU/L0mF1rNnT3r16kVtbW3WUSRphdaqoNXLXyjwOjCF3J6c5eQK230R8aumeA9JWlPvvvsu119/PQADBw5k3LhxfOlLX8o4lSSt2FoVtIhYJyKOioj7yUMFs7oAABr9SURBVC1g+2vgOeAwYF3gf8jtPCBJmTnvvPM44YQTmDFjRtZRJGmVrHFBi4jLgPeA/wP6A+cBm6eUDkgp3ZlSqgVeI7ezgCQVVEqJOXPmAPCHP/yBp556im7dumWcSpJWzdqMoP0QeJLcaFnvlNLpKaW3GxzzDHDkWryHJK2RY489lv3335/FixfTsWNHBgwYkHUkSVplX7jV00ps3kgh+5yU0lNr8fqStMb23Xdf+vfvT5s2a/NrTpKysca/ub6onElSod1yyy20a9eOgw8+mCOOOCLrOJK0xvyrpaRWoba2lj/96U907dqVgw46yLXNJLVoFjRJLdoHH3zAeuutR/v27Rk7dixdunSxnElq8ZpkHTRJysKsWbPYYYcdOOWUUwDYaKONaNeuXcapJGntOYImqcVab731GDlyJHvttVfWUSSpSTmCJqlF+fTTTznmmGN4/vnnAfjpT3/Ktttum3EqSWpaFjRJLcqcOXO47777mDBhQtZRJKnZeIpTUovw9NNPs9NOO9GjRw9eeeUVOnVykxJJrZcjaJKK3oMPPsjOO+/MzTffDGA5k9TqWdAkFa2UEgB77rknl156KV//+tczTiRJhWFBk1SUnnrqKXbffXc+/vhjysrK+PGPf8w666yTdSxJKggLmqSi9dFHHzF9+vSsY0hSwVnQJBWNefPmcc899wCw8847M3nyZPr3759xKkkqPAuapKJx1llnceihh/LOO+8AUF5ennEiScqGBU1S5pYsWQLAb37zG+6991569uyZcSJJypYFTVKmfve737HvvvuyZMkSOnfu7LZNkoQL1UrKWJ8+fXjnnXeora2lTRt/JUkSQNSvM9RaVFZWppqamqxjSFqJp59+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KisrGTZs2NJSZjmTJGnFLGhqFosXL2a77bbjZz/7GQA9e/bk73//Oz179sw4mSRJxc9TnGoyixYtYvz48Rx44IG0bduWs846iwEDBmQdS5KkFscRNDWZyy67jGHDhjF58mQAhg8fzk477ZRxKkmSWh5H0LTG6urquPXWW+nZsyeDBw/mBz/4Af3792ebbbbJOpokSS2aI2haY4sWLeK///u/+etf/wpA586d2W+//bwAQJKktWRB02p54oknOPbYY6mrq6N9+/Y89NBDXHPNNVnHkiSpVbGgaZXUb8v0n//8h3vvvZe3334bgL59+1JeXp5lNEmSWh0LmlZq1qxZHHzwwVx//fUAHHXUUbz++uv06dMn22CSJLViFjQ1qn5bpnXXXZf58+ezcOFCAMrLy2nfvn2W0SRJavUsaFrOBRdcQP/+/Zk/fz4Rwbhx4zjuuOOyjiVJUsmwoAmA9957j08//RSAnXfemW984xssXrwYcFsmSZIKzYIm3nvvPfr27cuFF14IwJAhQ/jLX/7Cuuuum3EySZJKkwWtRM2ePZsHHngAgB49enDeeedx1FFHZZxKkiSBBa1knXLKKRxyyCHMmjULgJ/85CdsscUWGaeSJElgQSsZCxcu5JJLLlm6ftlpp53Gww8/zHrrrZdxMkmS1JAFrURMnz6dn//859x8880A9OnThx133DHjVJIkqTFult6K3XbbbdTU1HDuuefSs2dPJk+eTL9+/bKOJUmSvoAjaK1M/ZZMADU1Ndx9993Mnz8fgC233NIlMyRJagEsaK3I66+/zi677MLTTz8NwBlnnMG///1vOnTokHEySZK0OixorcDcuXMB6N69O0uWLOHjjz8GoH379m5kLklSC+QctBbuuOOO46WXXuLRRx+lc+fO/Otf//I0piRJLZwFrQV67bXX6Nu3LxHB7rvvzhZbbEFtbS1t2rSxnEmS1ApY0FqYxx9/nN13353Ro0dz+OGHc/TRR2cdSZIkNTHnoLUA06ZNY8KECQAMHjyYc845hz322CPjVJIkqbnEsssytAaVlZWppqYm6xhNarfdduPDDz/kpZde8hSmJEmtSERMTClVNnzcEbQiNHPmTM4999yl65ddfPHF/POf/7ScSZJUIixoRejZZ5/l17/+NePHjwdg4MCBbLbZZhmnkiRJheJFAkUgpcTFF19MWVkZJ554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\n","text/plain":""},"metadata":{"needs_background":"light"},"output_type":"display_data"}]}]

猜你喜欢

转载自www.cnblogs.com/LZXlzmmddtm/p/11983856.html