转载请注明出处: http://qiudeqing.com/python/2022/05/11/python-data-analysis.html

地址:https://www.imooc.com/learn/1273

测试数据: https://www.kaggle.com/datasets/blastchar/telco-customer-churn

The book we recommend to learn pandas is Python for Data Analysis, by Wes McKinney, creator of pandas.

第一章 课程介绍

1-1 课程介绍和工具准备

第二章 数据读取

2-1 Pandas读取和保存数据的方法

Pandas I/O支持的数据格式:Picking, Feather, Flat file, Parquet, Clipboard, OCR, Excel, SAS, JSON, SPSS, HTML, SQL, HDFStore:PyTables, Google BigQuery, (HDF5), STATA

详细清单参考官网: https://pandas.pydata.org/docs/user_guide/io.html?highlight=io

常用数据读

读取之后的数据是DataFrame

read_csv()

常用参数:

## 第三章

### Pandas查看和预览数据的方法

DataFrame API

常用数据查看方法:

统计不同数据类型指标数量

from collections import Counter
Counter(df.dtypes.values)

第四章 数据统计分析

group = pd.cut(df['age'], bins=100)
group.value_counts()  // 按照数量多少降序显示
group.value_counts(normalize=True)  // 数量显示为比例
group.value_counts().sort_index()  // 按照分箱顺序


绘制柱状图

import matplotlib.pyplot as plt
plt.figure(figsize=(20, 10))
plt.bar(
  range(12),  # 等宽显示
  df.value_counts().sort_index().values,
  tick_label=df.value_counts().sort_index().index
)
plt.show()

密度分布直方图

import seaborn as sns
sns.distplot(df)
plt.show()

散点图

import seaborn as sns
import matplotlib.pyplot as plt
sns.scatterplot(df['t1'], df['t2'])   # x, y
plt.show()

异常值处理

cols = ['a', 'b', 'c']

for col in cols:
  print('*' * 50 )
  print(col)
  q75 = df[col].quantile(q=0.75)
  print('上四分位数:', q75)


  q25 = df[col].quantile(q=0.25)
  print('下四分位数:', q25)

  # 四分位输间距
  d = q75 - q25
  print('四分位间距:', d)

  # 数据上下界
  data_top = q75 + 3 * d
  data_bottom = q25 - 3 * d
  print('数据上界:', data_top)
  print('数据下界:', data_bottom)

  # 查看异常值数量
  print('异常值个数:', len(df[(df[col] > data_top) | (df[col] < data_bottom)]))

  # 剔除异常值: 1. 根据条件直接删除  2. 删除重复数据
  group= pd.cut(df[col], bins = 100)
  plt.figure(figsize=(20, 10))
  plt.bar(
      range(12),  # 等宽显示
      group.value_counts().sort_index().values,
      tick_label=group.value_counts().sort_index().index
  )
  plt.show()