datawhale學(xué)習(xí)者手冊(cè)
datawhale數(shù)據(jù)分析GitHub開(kāi)源學(xué)習(xí)內(nèi)容
一、主要內(nèi)容
1.導(dǎo)入package
import pandas as pd # 數(shù)據(jù)處理,數(shù)據(jù)分析
import json # 讀取json格式數(shù)據(jù)
import seaborn as sns # 畫(huà)圖
import matplotlib.pyplot as plt # 畫(huà)圖
import re # 用于正則化表達(dá)式,匹配字符串的模式
import requests # 用于網(wǎng)絡(luò)連接,發(fā)送網(wǎng)絡(luò)請(qǐng)求,使用域名獲取對(duì)應(yīng)信息
from bs4 import BeautifulSoup # 用于爬取arxiv的數(shù)據(jù)
2.讀取數(shù)據(jù)
data = [] # 初始化
with open("xxx.json", 'r') as f:
for line in f:
data.append(json.loads(line))
data = pd.DataFrame(data) # list格式變df格式
data.shape # 顯示數(shù)據(jù)大小
知識(shí)拓展1 -- with語(yǔ)句
使用with語(yǔ)句優(yōu)勢(shì):1.自動(dòng)關(guān)閉文件句柄;2.自動(dòng)顯示(處理)文件讀取數(shù)據(jù)異常。簡(jiǎn)化資源的獲取和釋放:打開(kāi)文件時(shí),用with可確保打開(kāi)的文件在離開(kāi)with語(yǔ)句后關(guān)閉。enter打開(kāi)資源;exit釋放資源
- with語(yǔ)句通過(guò)在所謂的上下文管理器中封裝try...finally語(yǔ)句的標(biāo)準(zhǔn)用法來(lái)簡(jiǎn)化異常處理。
- with語(yǔ)句一般用來(lái)管理系統(tǒng)資源的安全獲取和釋放。資源首先由with語(yǔ)句獲取,并在執(zhí)行離開(kāi)with上下文時(shí)自動(dòng)釋放。
- 有效地使用with有助于避免資源泄漏的問(wèn)題,讓代碼更加易于閱讀。
知識(shí)拓展2 -- json讀取
編碼和解碼 JSON 對(duì)象,JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫(xiě)。
json.dumps 將 Python 對(duì)象編碼成 JSON 字符串
json.loads 將已編碼的 JSON 字符串解碼為 Python 對(duì)象
3.查看統(tǒng)計(jì)數(shù)據(jù)
data["categories"].describe() # 統(tǒng)計(jì)某列特征的信息
'''
count 1796911
unique 62055
top astro-ph
freq 86914
Name: categories, dtype: object
'''
'''
count:一列數(shù)據(jù)的元素個(gè)數(shù);
unique:一列數(shù)據(jù)中元素的種類(lèi);
top:一列數(shù)據(jù)中出現(xiàn)頻率最高的元素;
freq:一列數(shù)據(jù)中出現(xiàn)頻率最高的元素的次數(shù);
'''
unique_categories = set([i for l in [x.split(' ') for x in data["categories"]] for i in l])
# 提取所有的種類(lèi)
# 每個(gè)樣本可能有多個(gè)種類(lèi);多個(gè)樣本可能有相同的種類(lèi)
len(unique_categories) # 173個(gè)不同的樣本
知識(shí)拓展3-x.split(' ')
二、群內(nèi)問(wèn)題集錦
三、自己的bug歷程
-
環(huán)境配置:
image.png
# 1.創(chuàng)建虛擬環(huán)境,python版本3.7
conda create --name datawhale python=3.6
# 2.配置環(huán)境,部署jupyter kernel
seaborn==0.9.0
BeautifulSoup4==4.8.0
requests==2.22.0
pandas==0.25.1
matplotlib==3.1.1
conda install ipykernel
python -m ipykernel install --user --name CWRU --display-name "Wind"
- requirment.txt文件中,包名后是雙等于號(hào)
- json 自帶,無(wú)需安裝
- BeautifulSoup包安裝,后面帶一個(gè)4;導(dǎo)入的時(shí)候?yàn)?from bs4 import BeautifulSoup
- 【soup = BeautifulSoup(website_url,'lxml') #爬取數(shù)據(jù),這里使用lxml的解析器,加速 】錯(cuò)誤,**原因:未安裝lxml pip install lxml 然后重啟jupyter生效 **
時(shí)間:2020.01.10--2020.01.13
