如果有运行了报错了,要么是你自己写的时候没相关的变量,要么是我手打的函数打错了,你复制过去也错了
4.关于彩票的数据分析
1.
先导入两个库,再引入数据:matplotlib做出来的图都是PNG,做不到动态响应的图。所以还得学Python可视化神器——pyecharts的超详细使用指南!
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
df=pd.read_csv('data.csv',headers=None,index_col=0)
red_ball=df.loc[:,1:6]
print(red_ball)
```python
red_ball_count= pd.value_counts(red_ball.values.flatten())
print(red_ball_count)
blue_ball_count=pd.value_counts(blue_ball)
fig,ax=plt.subplots(2,1)
ax[0].pie(red_ball_count,labels=red_ball_count.index,radius=1,wedgeprops={'width':0.3})
ax[1].pie(blue_ball_count,labels=blue_ball_count.index,radius=0.5,wedgeprops={'width':0.2})
ax[0].pie(red_ball_count,labels=red_ball_count.index,radius=1,wedgeprops={'width':0.3})
ax[0].pie(blue_ball_count,labels=blue_ball_count.index,radius=0.5,wedgeprops={'width':0.2})
plt.show()
2.
上边的代码到最后每次打印的后会有一个空白的二维坐标系,所以咱们要去掉,怎么去掉呢??从上文数据可视化开始,不要fig、ax了,直接:
plt.pie(red_ball_count,labels=red_ball_count.index,radius=1,wedgeprops={'width':0.3})
plt.pie(blue_ball_count,labels=blue_ball_count.index,radius=0.5,wedgeprops={'width':0.2})
plt.show()
3.
如果想弄更花的颜色,那么可以找来那些颜色的字符表达式,然后一个color列表(此列表元素都是字符,不同元素之间用逗号间隔) like this: 然后在上文紧接着的代码框里接着改:
plt.pie(red_ball_count,colors=np.random.choice(colors,len(red_ball_count)),labels=red_ball_count.index,radius=1,wedgeprops={'width':0.3})
plt.pie(blue_ball_count,colors=np.random.choice(colors,len(red_ball_count)),labels=blue_ball_count.index,radius=0.5,wedgeprops={'width':0.2})
plt.show()
8.关于电影票房的数据分析
1.
用 requests 、BeautifulSoup库 like this:
import requests
from bs4 import BeautifulSoup
text=requests.get('https://ys.endata.cn/DataMarket/Index').text
main_page=BeautifulSoup(text,'html.parser')
有些网页的网址改动下这个年份也是能快速浏览当年的信息的
2.
进一步拿到网页数据前,来到目标网页,鼠标右键后,点击 检查 然后找table标签,注意只有这样的IDE才能要 来,上代码:(接着上文,都在一个代码窗口)
table=main_page.find('table',attrs={'id':'tbContent'})
f=open('电影票房.csv',mode='a')
trs= table.find_all('tr')
for tr in trs:
lst=tr.find_all('td')
if len(lst) != 0:
for td in lst:
f.write(td.text.strip())
f.write(',')
f.write("\n")
3.爬取总的代码(做成函数)
上边都是弄的一年的,也就是2008年,接下来一次性要弄很多年的 定义成一个函数就行了
import requests
from bs4 import BeautifulSoup
def fowm(year):
text=requests.get('https://www.cbooo.cn/year?year=%s' % year).text
main_page=BeautifulSoup(text,'html.parser')
table=main_page.find('table',attrs={'id':'tbContent'})
f=open('电影票房.csv',mode='a')
trs= table.find_all('tr')
for tr in trs:
lst=tr.find_all('td')
if len(lst) != 0:
for td in lst:
f.write(td.text.strip())
f.write(',')
f.write("\n")
for year in range(2008,2020):
dowm(year)
4.数据分析(动态饼图)
预测足球比赛的结果得用线性回归
|