Python数据分析

Python数据分析

\1. 环境准备
CPython —> Jupyter —> Pandas + 周边库 —> 专业人士
Anaconda —> CPython + conda + Jupyter + 190+库 —> 适合小白
Miniconda —> CPython + conda —> 小白专业
\2. 工具介绍
PyCharm Professional Edition —> 工程化开发
VS code / Jupyter Notebook / Jupyter Lab —> 数据科学

\3. 安装环境
升级pip
~ Windows
python -m pip install -U --user pip
~ macOS
pip install -U pip

安装启动
pip install jupyter
jupyter notebook

​ pip install jupyterlab
​ jupyter lab
​ jupyter-lab

\4. 三大神器
Numpy —> ndarray
Pandas —> Series / DataFrame / Index
Matplotlib —> figure / subplot / plot / scatter / bar / pie / …

a. 加载数据
pd.read_csv —> encoding / sep / delimiter / quotechar / index_col / usecols / nrows / skiprows / iterator / chunksize
pd.read_excel —> sheet_name / header / engine
pd.read_sql —> SQLAlchemy —> create_engine —> Engine
~ MySQL:mysql+pymysql://用户名:口令@数据服务器的IP地址:端口/数据库的名字
~ Oracle:oracle://用户名:口令@数据库服务器的IP地址:端口
~ SQLServer:mssql+pyodbc://注册的ODBC数据源的名字

​ —> DataFrame
​ ~ info / head / tail
​ ~ set_index / reset_index / reindex / rename —> index / columns
​ ~ 布尔索引 / query

b. 数据重塑
pd.concat
pd.merge —> left / right / how / on

c. 数据清洗
缺失值
甄别:isna / isnull / notna / notnull
处理:dropna / fillna / map / apply
重复值
甄别:duplicated
处理:drop_duplicates
Series —> unique / nunique / value_counts
异常值
甄别:箱线图 / 数值判定法 / Z-score判定法
处理:drop / replace / map / apply
预处理
Series.str —> lower / upper / title / capitalize
—> contains / startswith / endswith
—> extract
—> split
—> replace
.dt —> year / quarter / month / day / weekday / hour / minute
—> days / seconds / total_seconds
—> strftime
Series —> map / apply
DataFrame —> apply / transform / applymap~ 分箱(离散化)
pd.cut(data, bins, labels)
pd.qcut(data, [0, 0.1, 0.25, 0.5, 1])~ 虚拟变量
pd.get_dummies()
d. 数据分析
获取描述性统计信息
sum / mean / max / min / count / var / std / cumsum
describe / skew / kurtosis
排序和取头部值
sort_index —> level
sort_values —> by / ascending
nlargest / nsmallest
分组聚合
groupby —> agg
pivot_table —> index / columns / values / aggfunc
crosstable

e. 数据呈现
%matplotlib inline
%matplotlib qt —> pip install PyQt5
%config InlineBackend.figure_format = ‘svg’

​ plt.rcParams[‘font.sans-serif’] = [‘中文字体名称’, ‘…’]
​ plt.rcParams[‘axes.unicode_minus’] = False

​ plot —> kind / figsize
​ line / bar / barh / scatter / box / pie / hist

​ plt.savefig / plt.show()

你可能感兴趣的:(python,数据分析,开发语言)