第三週學習總結,主要內容:
-
pandas數據統計與分析的學習
-
結合selenium編寫爬蟲
-
學習pandas在機器學習數據預處理與特徵處理
-
作業實戰分析鏈家數據
本週三晚上去參加了混沌大學的線下活動,史蒂夫 霍夫曼 親自來到現場講了硅谷創業的事情以及他是如何選擇公司去投資,受益非淺,最後講了他對AI的一些看法,更加堅定了我的選擇。演講中我記憶最深刻的是他講的判斷一個產品的好壞,去找100個用戶去試用,如果100個用戶都說好,他不會投資,但是如果100個用戶有90個用戶都不感興趣,而有10個用戶說“太好了,我就需要這樣的產品,怎麼會有這樣完美的產品,怎麼樣才能得到它,即使付費我也非常願意。”這時候霍夫曼一定會投資。總結下來就是:“讓10000個用戶說
好,不如讓100個用戶尖叫!”
下面回顧一下本週pandas講的知識點:
-
設置pd的行和列:index和columns
-
df = pd.DataFrame( [[4, 7, 10],[5, 8, 11],[6, 9, 12]],index=[1, 2, 3],columns=['a', 'b', 'c'])
-
按照 行 或 列 來合併兩個pd表:
-
pd.concat([df1,df2], axis=0) --- 行
-
pd.concat([df1,df2], axis=1) --- 列
-
列排序
-
df=df.sort_values('mpg',ascending=False) --- 從高到低
-
df=df.sort_values('mpg',ascending=True) --- 從低到高
-
修改列名 y 改成 year
-
df=df.rename(columns = {'y':'year'})
-
index排序:df=df.sort_index()
-
重新設置index: (注意會把之前的index往右平移,如果調用兩次則會有兩個index的列)
-
df=df.reset_index()
-
刪除重複的行:df.drop_duplicates()
-
獲取列表前n條數據:df.head(n)
-
獲取列表倒數n條數據:df.tail(n)
-
用切片獲取行數據:df.iloc[10:20]
-
對某一列從大到小獲取前n條數據:df.nlargest(n, 'value')
-
對某一列從小到大獲取前n條數據:df.nsmallest(n, 'value')
-
pd的計算:
-
d1.count() #非空元素計算
-
d1.min() #最小值
-
d1.max() #最大值
-
d1.idxmin() #最小值的位置,類似於R中的which.min函數
-
d1.idxmax() #最大值的位置,類似於R中的which.max函數
-
d1.quantile(0.1) #10%分位數d1.sum() #求和
-
d1.mean() #均值
-
d1.median() #中位數
-
d1.mode() #衆數
-
d1.var() #方差
-
d1.std() #標準差
-
d1.mad() #平均絕對偏差
-
d1.skew() #偏度
-
d1.kurt() #峯度
-
d1.describe() #一次性輸出多個描述性統計指標
-
df.shift(1), --- 把 行 整體往下移一行, -1是向上移一行
-
從csv文件中讀取數據:
-
aapl = pd.read_csv("data/AAPL.csv", index_col=0, parse_dates=["Date"])
-
取表中的一列生成圖表:
-
aapl["Adj Close"].plot()