筆者是一個癡迷于挖掘資料中的價值的學習人,希望在平日的工作學習中,挖掘資料的價值,找尋資料的秘密,筆者認為,資料的價值不僅僅隻展現在企業中,個人也可以體會到資料的魅力,用技術力量探索行為密碼,讓大資料助跑每一個人,歡迎直筒們關注我的公衆号,大家一起讨論資料中的那些有趣的事情。
我的公衆号為:livandata
1、資料分析的内容:
2、資料分析與挖掘的相關子產品:
3、安裝報錯:
Import genism時會報錯:Chunkize warning while installing gensim
此時需要在import genism前面加上:
UserWarning: detected Windows; aliasingchunkize to chunkize_serial
warnings.warn("detected Windows;aliasing chunkize to chunkize_serial")
解決方案:
在import gensim前面加入:
import warnings
warnings.filterwarnings(action='ignore',category=UserWarning, module='gensim')
import gensim
numpy的最大功能是建立數組,建立數組的格式為:numpy.array([“a”,”f”,”e”])
#!/usr/bin/env python
# _*_ UTF-8 _*_
import numpy
#一維數組
x=numpy.array(['s','d','f'])
#二維數組[[],[],[]]
y=numpy.array([[3,13,23],[3,4,6],[2,3,5]])
#排序:sort()
x.sort()
y.sort()
#取最大值和最小值:
y1 = y.max()
y2 = y.min()
#切片:
#數組[起始下标:最終下标+1]
#例:x[1:3] #即取到1-2;
Pandas的使用:
#!/usr/bin/env python
# _*_ UTF-8 _*_
import pandas as pda
#series:代表一行或者一列
#一串數字即代表一個series,字元串前面會自動添加索引,如果不指定索引,則會0,1……往下添加。
#DataFrame:類似于表格,即行和列整合在一起的資料結構
#索引預設0,1,2,3
a = pda.Series([8,9,2,1])
#指定索引:
b = pda.Series([8,9,2,1], index=["one","two","three","four"])
#預設行列名
c = pda.DataFrame([[5,6,2,3],[8,4,6,3],[6,4,31,2]])
#指定行列名:
d = pda.DataFrame([[5,6,2,3],[8,4,6,3],[6,4,31,2]], columns=["one","two","three","four"])
#通過字典的方式來建立資料框:
e = pda.DataFrame({
"one":4, #如果數字不足,系統會自動填充。
"two":[6,2,3],
"three":list(str(982))
})
#頭部資料,預設顯示前五行,如果不夠五行則取前五行。
d.head(5)
#取資料的後五行,預設五行:
d.tail()
#按列統計資料的情況,會顯示多個統計值。
d.describe()
#轉置:即将行變成列,将列變成行;
d.T
4、資料導入部分:
Csv檔案格式問題經常會出現,對于常用的csv的檔案,需要以utf-8的方式儲存,即已另存為的方式儲存為utf-8的csv檔案格式。
其他方式會報錯:編碼失敗的錯誤(以什麼方式編碼,就以什麼方式解碼)。
導入csv格式檔案:
import pandas as pda
#導入csv格式的内容:
i = pda.read_csv("abc2.csv", delimiter='\t')
print(i)
i.describe()
i.sort_values(by='A')
導入Excel檔案:
#!/usr/bin/env python
# _*_ UTF-8 _*_
import pandas as pda
#導入Excel資料:
i = pda.read_excel('abc.xlsx')
print(i)
導入mysql的資料:
中間存在亂碼問題,需要解決。
import pandas as pda
import pymysql
conn = pymysql.connect(host="127.0.0.1",
user="root",
passwd="123456",
db="livan")
sql = "select * from goods"
k = pda.read_sql(sql, conn)
print(k)
導入HTML資料:
import pandas as pda
#abc.html也可以更換成http://www.baidu.com等網頁,隻要網頁中有table即可。
kl = pda.read_html("abc.html")
print(kl)
導入文本資料:
#!/usr/bin/env python
# _*_ UTF-8 _*_
import pandas as pda
ts = pda.read_table("abc.txt")
print(ts)
5、matplotlib的作圖基礎:
以基礎的方式講解,主要講解折線圖和散點圖。
#!/usr/bin/env python
# _*_ UTF-8 _*_
import matplotlib.pylab as pyl
import numpy as npy
#折線圖或者散點圖matplotlib.pylab:
x = [1,2,3,4,8]
y = [5,7,2,1,5]
# 折線圖:
# 一般會有幾個參數,x軸的資料,Y軸的資料,展現形式;
#pyl.plot(x, y)
# pyl.show()
# 散點圖:
#pyl.plot(x, y, 'o')
# pyl.show()
#改變顔色:
#c---cyan---青色;
#r---red---紅色;
#m---magente---品紅;
#g---green---綠色;
#b---blue---藍色;
#y---yellow---黃色;
#k---black---黑色;
#w---white---白色;
#第三個參數可以疊加。
# pyl.plot(x, y, 'oc')
# pyl.show()
# 線條的樣式:
#“-”普通的直線;
#“--” 代表虛線;
#“-.”-。的形式;
#“:”細小虛線。
# pyl.plot(x, y, '--')
# pyl.show()
#改變點的樣式:
#s---方形;
#h---六角形;
#*---星型;
#+---加号的形式;
#x--x型;
#d---菱形;
# p---五角型
pyl.plot(x, y, '*')
# 同一副圖上添加第二幅
x2 = [1,3,6,8,10,12,13,19]
y2 = [1,6,9,10,19,23,35,34]
pyl.plot(x2, y2)
pyl.plot()
# pyl.show()
# 标題,坐标等設定
pyl.title("show")
pyl.xlabel("ages")
pyl.ylabel("temp")
pyl.xlim(0,10)
pyl.ylim(0,8)
pyl.show()
講直方圖:
如何生成随機數:
#!/usr/bin/env python
# _*_ UTF-8 _*_
import matplotlib.pylab as pyl
import numpy as npy
# 直方圖hist:
# (最小值,最大值,個數)
# data = npy.random.random_integers(1,20, 10)
#生成具有正态分布的随機數:
#(平均數, 标準差,個數)
data = npy.random.normal(10.0,1.0,10000)
data2 = npy.random.random_integers(1,25,10000)
# pyl.hist(data2)
#設定直方圖的寬度,上限和下限參數為:(上限,下限,寬度)
sty = npy.arange(2, 17, 4)
#取消柱型輪廓:histtype='stepfilled'
pyl.hist(data, sty, histtype='stepfilled')
sty = pyl.show()
print(data)
如何建立子圖:
如圖區域如何實作:
#!/usr/bin/env python
# _*_ UTF-8 _*_
import matplotlib.pylab as pyl
import numpy as npy
#子圖:同一個圖檔有多個圖檔:
#參數:(行,列,目前區域)
pyl.subplot(2,2,1)
x1=[1,2,3,4,5]
y1=[5,3,5,23,5]
pyl.plot(x1,y1)
pyl.subplot(2,2,2)
x2=[1,2,3,4,5]
y2=[5,3,5,23,5]
pyl.plot(x2,y2)
pyl.subplot(2,1,2)
x3=[1,2,3,4,5]
y3=[5,3,5,23,5]
pyl.plot(x3,y3)
pyl.show()
43、讀取和訊部落格的資料,并進行可視化分析:
#!/usr/bin/env python
# _*_ UTF-8 _*_
import matplotlib.pylab as pyl
import numpy as npy
import pandas as pda
data = pda.read_csv("F:/python_workspace/file/hexun.csv")
# # 檢視各行列的詳細内容[第幾行][第幾列]
# print(data.values)
# #取一行
# print(data.values[1])
# #取一個單元格
# print(data.values[1][1])
# print(data.shape)
# 取出一列的資料(取出第三列):
data2 = data.T
y1 = data2.values[3]
x1 = data2.values[4]
# pyl.plot(x1, y1)
# pyl.show()
x2 = data2.values[0]
pyl.plot(x2, y1)
pyl.show()