為什么選擇Python進(jìn)行數(shù)據(jù)分析?
Python是一門動(dòng)態(tài)的、面向?qū)ο蟮哪_本語言,同時(shí)也是一門簡約,通俗易懂的編程語言。Python入門簡單,代碼可讀性強(qiáng),一段好的Python代碼,閱讀起來像是在讀一篇外語文章。Python這種特性稱為“偽代碼”,它可以使你只關(guān)心完成什么樣的工作任務(wù),而不是糾結(jié)于Python的語法。
另外,Python是開源的,它擁有非常多優(yōu)秀的庫,可以用于數(shù)據(jù)分析及其他領(lǐng)域。更重要的是,Python與最受歡迎的開源大數(shù)據(jù)平臺(tái)Hadoop具有很好的兼容性。因此,學(xué)習(xí)Python對(duì)于有志于向大數(shù)據(jù)分析崗位發(fā)展的數(shù)據(jù)分析師來說,是一件非常節(jié)省學(xué)習(xí)成本的事。
Python的眾多優(yōu)點(diǎn)讓它成為最受歡迎的程序設(shè)計(jì)語言之一,國內(nèi)外許多公司也已經(jīng)在使用Python,例YouTube,Google,阿里云等等。
簡單且有用的Python數(shù)據(jù)分析和機(jī)器學(xué)習(xí)代碼
經(jīng)過這個(gè)月的python數(shù)據(jù)分析和機(jī)器學(xué)習(xí),總結(jié)了一些經(jīng)驗(yàn),同時(shí)也收獲了一些大佬的優(yōu)秀博客,感興趣的可以觀看我的收藏夾,廢話不多說,直接進(jìn)入正題。
數(shù)據(jù)分析大致分為數(shù)據(jù)處理,模型建立,模型測試這3部,這篇文章主要是講解對(duì)數(shù)據(jù)進(jìn)行處理
為了對(duì)數(shù)據(jù)進(jìn)行分析,首先要了解學(xué)習(xí)python的熊貓庫pandas,下面是一些基礎(chǔ)簡單的操作方法,python調(diào)用方法如下
python通過pandas讀取csv文件的方法
df= pd.read_csv("xxx.csv")
#輸出文件內(nèi)容前五列
print(df.head())
#輸出csv所有內(nèi)容
print(df)
查看csv某列數(shù)據(jù)的方法
pandas.read_csv(‘file_name.csv', usecols = [0,1,2,3])
#簡單方法
df["屬性列名稱"]
pandas刪除csv數(shù)據(jù)某些列的方法
droplabels= ['x_cat4','x_cat5','x_cat8','x_cat9']
data=df.drop(droplabels,axis=1)
pandas對(duì)NAN數(shù)據(jù)清洗的方法
#將表格中含有nan數(shù)值的列進(jìn)行刪除,返回非空數(shù)據(jù)和索引值的Series
df.dropna()
'''
dropna(axis=0,how='any',thresh=None),how參數(shù)可選的值為any或者all.all僅在切片元素全為NA時(shí)才拋棄該行(列)。thresh為整數(shù)類型,eg:thresh=3,那么一行當(dāng)中至少有三個(gè)NA值時(shí)才將其保留。
'''
data.fillna(0) #將nan替換為0
print(data.fillna(data.mean())) ### 用每列特征的均值填充缺失數(shù)據(jù)
print(data.fillna(data.median())) ### 用每列特征的中位數(shù)填充缺失數(shù)據(jù)
print(data.fillna(method='bfill')) ### 用相鄰后面(back)特征填充前面空值
print(data.fillna(method='pad')) ### 用相鄰前面特征填充后面空值
#參考博客:https://blog.csdn.net/qq_21840201/article/details/81008566
pandas對(duì)csv文件數(shù)據(jù)的更改的方法
#更改某列屬性數(shù)值和類型
df = df[df['漲跌幅']!='None']
df['漲跌幅'] = df['漲跌幅'].astype(np.float64)
df = pd.DataFrame(a, dtype='float') #數(shù)據(jù)類型轉(zhuǎn)化
#參考鏈接:http://www.45fan.com/article.php?aid=19070771581800099094144284
#對(duì)數(shù)據(jù)全部遍歷讀取并更改,參考如下
for i in df.index:
df["id1"][i]=1
pandas的iloc的使用方法和作用
X = df.iloc[:, data.columns != 'label'] # 取出不包括 label其他的列
df.iloc[:3, :2] #使用.iloc ,我們只選擇了.iloc的前3行和2列
計(jì)算某列元素?cái)?shù)量的方法
sum= len(data[data.label == 'BENIGN']) #計(jì)算BENIGN的數(shù)量
len(df)
pandas對(duì)文件進(jìn)行保存的方法
#df為要保存的數(shù)據(jù),xxx.csv為保存的文件
df.to_csv('xxx.csv', index=False, sep=',')
以上是pandas對(duì)數(shù)據(jù)進(jìn)行處理的簡單功能,其中含有一些參考學(xué)習(xí)的博客,感興趣的同學(xué)可以觀看學(xué)習(xí)。有了這些基礎(chǔ)知識(shí),我們才能對(duì)數(shù)據(jù)集進(jìn)行處理,接下來就是如何使用的問題了,下面講解簡單的套路。
1.首先觀察數(shù)據(jù),通過代碼檢測每一列的數(shù)據(jù)類型再進(jìn)行考察,檢測是否存在NAN值,可以刪除該列,也可根據(jù)情況進(jìn)行數(shù)值的變動(dòng)。
2.數(shù)據(jù)集中可能存在部分列屬性為time屬性,一般不要直接將該列刪除,可通過將其轉(zhuǎn)化為浮點(diǎn)類型
3.字符串類型向數(shù)值類型的轉(zhuǎn)換,部分字符串需要進(jìn)行轉(zhuǎn)換,這個(gè)就視情況而定了。
總結(jié)
到此這篇關(guān)于Python數(shù)據(jù)分析和機(jī)器學(xué)習(xí)代碼的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)分析代碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python運(yùn)用于數(shù)據(jù)分析的簡單教程
- Python數(shù)據(jù)分析matplotlib設(shè)置多個(gè)子圖的間距方法
- Python數(shù)據(jù)分析:手把手教你用Pandas生成可視化圖表的教程
- python數(shù)據(jù)分析數(shù)據(jù)標(biāo)準(zhǔn)化及離散化詳解
- python實(shí)現(xiàn)數(shù)據(jù)分析與建模
- 詳解10個(gè)可以快速用Python進(jìn)行數(shù)據(jù)分析的小技巧
- Python數(shù)據(jù)分析庫pandas基本操作方法
- 利用python實(shí)現(xiàn)數(shù)據(jù)分析
- 選擇python進(jìn)行數(shù)據(jù)分析的理由和優(yōu)勢