python分析數據
#coding:utf-8
#file: FileSplit.py
import os,os.path,time
def FileSplit(sourceFile, targetFolder):
sFile = open(sourceFile, 'r')
number = 100000 #每個小文件中保存100000條數據
dataLine = sFile.readline()
tempData = [] #緩存列表
fileNum = 1
if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建
os.mkdir(targetFolder)
while dataLine: #有數據
for row in range(number):
tempData.append(dataLine) #將一行數據添加到列表中
dataLine = sFile.readline()
if not dataLine :
break
tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + str(fileNum) + ".txt")
tFile = open(tFilename, 'a+') #創建小文件
tFile.writelines(tempData) #將列表保存到文件中
tFile.close()
tempData = [] #清空緩存列表
print(tFilename + " 創建於: " + str(time.ctime()))
fileNum += 1 #文件編號
sFile.close()
if __name__ == "__main__" :
FileSplit("access.log","access")
====
#coding:utf-8
#file: Map.py
import os,os.path,re
def Map(sourceFile, targetFolder):
sFile = open(sourceFile, 'r')
dataLine = sFile.readline()
tempData = {} #緩存列表
if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建
os.mkdir(targetFolder)
while dataLine: #有數據
p_re = re.compile(r'(GET|POST)\s(.*?)\sHTTP/1.[01]',re.IGNORECASE) #用正則表達式解析數據
match = p_re.findall(dataLine)
if match:
visitUrl = match[0][1]
if visitUrl in tempData:
tempData[visitUrl] += 1
else:
tempData[visitUrl] = 1
dataLine = sFile.readline() #讀入下一行數據
sFile.close()
tList = []
for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):
tList.append(key + " " + str(value) + '\n')
tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + "_map.txt")
tFile = open(tFilename, 'a+') #創建小文件
tFile.writelines(tList) #將列表保存到文件中
tFile.close()
if __name__ == "__main__" :
Map("access\\access.log1.txt","access")
Map("access\\access.log2.txt","access")
Map("access\\access.log3.txt","access")
==
#coding:utf-8
#file: Rece.py
import os,os.path,re
def Rece(sourceFolder, targetFile):
tempData = {} #緩存列表
p_re = re.compile(r'(.*?)(\d{1,}$)',re.IGNORECASE) #用正則表達式解析數據
for root,dirs,files in os.walk(sourceFolder):
for fil in files:
if fil.endswith('_map.txt'): #是rece文件
sFile = open(os.path.abspath(os.path.join(root,fil)), 'r')
dataLine = sFile.readline()
while dataLine: #有數據
subdata = p_re.findall(dataLine) #用空格分割數據
#print(subdata[0][0]," ",subdata[0][1])
if subdata[0][0] in tempData:
tempData[subdata[0][0]] += int(subdata[0][1])
else:
tempData[subdata[0][0]] = int(subdata[0][1])
dataLine = sFile.readline() #讀入下一行數據
sFile.close()
tList = []
for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):
tList.append(key + " " + str(value) + '\n')
tFilename = os.path.join(sourceFolder,targetFile + "_rece.txt")
tFile = open(tFilename, 'a+') #創建小文件
tFile.writelines(tList) #將列表保存到文件中
tFile.close()
if __name__ == "__main__" :
Rece("access","access")
B. python分析文件中的數據
#-*-coding:gb2312-*-
importjson
defread_txt_high(filename):
withopen(filename,'r')asfile_to_read:
list0=[]#文件中的第一列數據
list1=[]#文件中的第二列數據
whileTrue:
lines=file_to_read.readline()#整行讀取數據
ifnotlines:
break
item=[iforiinlines.split()]
data0=json.loads(item[0])#每行第一個值
data1=json.loads(item[1])#每行第二個值
list0.append(data0)
list1.append(data1)
returnlist0,list1
C. python可以做哪些數據分析
1、檢查數據表
Python中使用shape函數來查看數據表的維度,也就是行數和列數。你可以使用info函數查看數據表的整體信息,使用dtypes函數來返回數據格式。Isnull是Python中檢驗空值的函數,你可以對整個數據表進行檢查,也可以單獨對某一列進行空值檢查,返回的結果是邏輯值,包含空值返回True,不包含則返回False。使用unique函數查看唯一值,使用Values函數用來查看數據表中的數值。
2、數據表清洗
Python中處理空值的方法比較靈活,可以使用Dropna函數用來刪除數據表中包含空值的數據,也可以使用fillna函數對空值進行填充。Python中dtype是查看數據格式的函數,與之對應的是astype函數,用來更改數據格式,Rename是更改列名稱的函數,drop_plicates函數刪除重復值,replace函數實現數據替換。
3、數據預處理
數據預處理是對清洗完的數據進行整理以便後期的統計和分析工作,主要包括數據表的合並、排序、數值分列、數據分組及標記等工作。在Python中可以使用merge函數對兩個數據表進行合並,合並的方式為inner,此外還有left、right和outer方式。使用ort_values函數和sort_index函數完成排序,使用where函數完成數據分組,使用split函數實現分列。
4、數據提取
主要是使用三個函數:loc、iloc和ix,其中loc函數按標簽值進行提取,iloc按位置進行提取,ix可以同時按標簽和位置進行提取。除了按標簽和位置提起數據以外,還可以按具體的條件進行數據,比如使用loc和isin兩個函數配合使用,按指定條件對數據進行提取。
5、數據篩選匯總
Python中使用loc函數配合篩選條件來完成篩選功能,配合sum和 count函數還能實現excel中sumif和countif函數的功能。Python中使用的主要函數是groupby和pivot_table。groupby是進行分類匯總的函數,使用方法很簡單,制定要分組的列名稱就可以,也可以同時制定多個列名稱,groupby 按列名稱出現的順序進行分組。
D. python有哪些數據分析和數據展現的模塊可以用
ipython:只是個notebook,但是很好用。。。
numpy
scipy :
pandas
matplotlib: python畫圖
nltk, gensim:nlp
statsmodels: 各種模型
scikit-learn: machine learning模塊,很全
E. 利用python實現數據分析
利用python實現數據分析
為什麼要利用python進行數據分析?python擁有一個巨大的活躍的科學計算社區,擁有不斷改良的庫,能夠輕松的集成C,C++,Fortran代碼(Cython項目),可以同時用於研究和原型的構建以及生產系統的構建。
1:文件內容格式為json的數據如何解析
import json,os,sys
current_dir=os.path.abspath(".")
filename=[file for file in os.listdir(current_dir) if ".txt" in file]#得到當前目錄中,後綴為.txt的數據文件
fn=filename[0] if len(filename)==1 else "" #從list中取出第一個文件名
if fn: # means we got a valid filename
fd=open(fn)
content=[json.loads(line) for line in fd]
else:
print("no txt file in current directory")
sys.exit(1)
for linedict in content:
for key,value in linedict.items():
print(key,value)
print("n")
2:出現頻率統計
import random
from collections import Counter
fruits=[random.choice(["apple","cherry","orange","pear","watermelon","banana"]) for i in range(20)]
print(fruits) #查看所有水果出現的次數
cover_fruits=Counter(fruits)
for fruit,times in cover_fruits.most_common(3):
print(fruit,times)
########運行結果如下:apple在fruits里出了5次
apple 5
banana 4
pear 4
3:重新載入mole的方法py3
import importlib
import.reload(molename)
4:pylab中包含了哪些mole
from pylab import *
等效於下面的導入語句:
from pylab import *
from numpy import *
from scipy import *
import matplotlib
F. python數據分析有什麼用
Python的語法簡單復,代碼可讀性高,容易制入門,有利於初學者學習;當我們進行數據處理的時候,我們希望將數據變得數值化,變成計算機可以運作的數字形式,我們可以直接使用一行列表推導式完成,十分簡單。
Python在數據分析和交互、探索性計算以及數據可視化等方面都有非常成熟的庫和活躍的社區,讓Python成為數據任務處理重要解決方案。在數據處理和分析方面,Python擁有numpy、pandas、matplotlib、scikit-learn、ipython等優秀的庫以及工具,尤其是pandas在處理數據方面有著絕對優勢。
Python擁有強大的通用編程能力,有別於R語言,Python不僅在數據分析方面能力強大,在爬蟲、WEB、自動化運維甚至於游戲等領域都有非常不錯的作用,公司只需要使用一種技術就可以完成全部服務,有利於業務融合,也可以提高工作效率。
Python是人工智慧首選的編程語言,在人工智慧時代,Python成為最受歡迎的編程語言。得益於Python簡潔、豐富的庫和社區,大部分深度學習框架都優先支持Python語言。
G. 如何用python進行數據分析
1、Python數據分析流程及學習路徑
數據分析的流程概括起來主要是:讀寫、處理計算、分析建模和可視化四個部分。在不同的步驟中會用到不同的Python工具。每一步的主題也包含眾多內容。
根據每個部分需要用到的工具,Python數據分析的學習路徑如下:
相關推薦:《Python入門教程》
2、利用Python讀寫數據
Python讀寫數據,主要包括以下內容:
我們以一小段代碼來看:
可見,僅需簡短的兩三行代碼即可實現Python讀入EXCEL文件。
3、利用Python處理和計算數據
在第一步和第二步,我們主要使用的是Python的工具庫NumPy和pandas。其中,NumPy主要用於矢量化的科學計算,pandas主要用於表型數據處理。
4、利用Python分析建模
在分析和建模方面,主要包括Statsmdels和Scikit-learn兩個庫。
Statsmodels允許用戶瀏覽數據,估計統計模型和執行統計測試。可以為不同類型的數據和每個估算器提供廣泛的描述性統計,統計測試,繪圖函數和結果統計列表。
Scikit-leran則是著名的機器學習庫,可以迅速使用各類機器學習演算法。
5、利用Python數據可視化
數據可視化是數據工作中的一項重要內容,它可以輔助分析也可以展示結果。
H. 怎樣用 Python 進行數據分析
做數據分析,首先你要知道有哪些數據分析的方法,然後才是用Python去調用這些方法
那Python有哪些庫類是能做數據分析的,很多,pandas,sklearn等等
所以你首先要裝一個anaconda套件,它包含了幾乎所有的Python數據分析工具,
之後再學怎麼分析。