Python數據分析
Python爬取網頁數據
// An highlighted block
import requests
if __name__=="__main__":
response = requests.get("https://book.douban.com/subject/26986954/")
content = response.content.decode("utf-8")
print(content)
// An highlighted block
import requests
url="https://pro.jd.com/mall/active/4BNKTNkRMHJ48QQ5LrUf6AsydtZ6/index.html"
try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encoding
print(r.text[:100])
except:
print("爬取失敗")
Python生成柱狀圖
// An highlighted block
import matplotlib.pyplot as plt
num_list = [1.5,0.6,7.8,6]
plt.bar(range(len(num_list)), num_list,color='rbgy')
plt.show()
Python生成堆狀柱狀圖
// An highlighted block
import matplotlib.pyplot as plt
name_list = ['Monday','Tuesday','Friday','Sunday']
num_list = [1.5,0.6,7.8,6]
num_list1 = [1,2,3,1]
plt.bar(range(len(num_list)), num_list, label='boy',fc = 'y')
plt.bar(range(len(num_list)), num_list1, bottom=num_list, label='girl',tick_label = name_list,fc = 'r')
plt.legend()
plt.show()
Python生成豎狀柱狀圖
// An highlighted block
import matplotlib.pyplot as plt
name_list = ['Monday','Tuesday','Friday','Sunday']
num_list = [1.5,0.6,7.8,6]
num_list1 = [1,2,3,1]
x =list(range(len(num_list)))
total_width, n = 0.8, 2
width = total_width / n
plt.bar(x, num_list, width=width, label='boy',fc = 'y')
for i in range(len(x)):
x[i] = x[i] + width
plt.bar(x, num_list1, width=width, label='girl',tick_label = name_list,fc = 'r')
plt.legend()
plt.show()
Python生成折線圖
// An highlighted block
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(15, 4), columns=['a', 'b', 'c', 'd'])
df.plot.area()
Python生成柱狀圖
// An highlighted block
import pandas as pd
import numpy as np
df = pd.DataFrame(3 * np.random.rand(5), index=['a', 'b', 'c', 'd','e'], columns=['x'])
df.plot.pie(subplots=True)
Python生成箱型圖
// An highlighted block
#首先導入基本的繪圖包
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
#添加成績表
plt.style.use("ggplot")
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['font.sans-serif']=['SimHei']
#新建一個空的DataFrame
df=pd.DataFrame()
// An highlighted block
df["英語"]=[76,90,97,71,70,93,86,83,78,85,81]
df["經濟數學"]=[65,95,51,74,78,63,91,82,75,71,55]
df["西方經濟學"]=[93,81,76,88,66,79,83,92,78,86,78]
df["計算機應用基礎"]=[85,78,81,95,70,67,82,72,80,81,77]
df
// An highlighted block
plt.boxplot(x=df.values,labels=df.columns,whis=1.5)
plt.show()
// An highlighted block
#用pandas自帶的畫圖工具更快
df.boxplot()
plt.show()
Python生成正態分佈圖
// An highlighted block
# -*- coding:utf-8 -*-
# Python實現正態分佈
# 繪製正態分佈概率密度函數
import numpy as np
import matplotlib.pyplot as plt
import math
u = 0 # 均值μ
u01 = -2
sig = math.sqrt(0.2) # 標準差δ
x = np.linspace(u - 3 * sig, u + 3 * sig, 50)
y_sig = np.exp(-(x - u) ** 2 / (2 * sig ** 2)) / (math.sqrt(2 * math.pi) * sig)
print(x)
print("=" * 20)
print(y_sig)
plt.plot(x, y_sig, "r-", linewidth=2)
plt.grid(True)
plt.show()
喜歡的小夥伴可以嘗試一下哦