首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用Pandas一行代码快速洞察数据:10个实用探索性分析技巧

你是否曾经面对一个全新的数据集,苦苦思索如何能更快地理解它?你并不孤单。

作为数据专业人士,我们都遇到过这样的情形——盯着数据集发呆,明知道里面藏着有用的信息。这时,Pandas一行代码的妙用就体现出来了。

在本文中,我们将介绍10个用于探索性数据分析的实用Pandas一行代码技巧,并以Seaborn的flights数据集为例进行演示。

Google Colab笔记本链接

快速了解数据集概况

这个简单命令可以让你全面了解数据集:包括行列数、列名、数据类型以及非空数据量。它可以帮助你立刻发现潜在的缺失值,并了解数据结构。

flights.info()

输出:

RangeIndex: 144 entries, 0 to 143

Data columns (total 3 columns):

#   Column      Non-Null Count  Dtype

---  ------      --------------  -----

0   year        144 non-null    int64

1   month       144 non-null    category

2   passengers  144 non-null    int64

dtypes: category(1), int64(2)

memory usage: 2.9 KB

检查缺失值

缺失数据会显著影响分析结果。下面的一行代码可以统计每一列的缺失值数量,帮助你决定如何处理它们。

flights.isna().sum()

输出:

year          0

month         0

passengers    0

dtype: int64

很棒!这个数据集没有缺失值。

生成统计摘要

该命令为所有列生成详细的统计摘要,包括计数、均值、标准差、最小值、最大值和四分位数(适用于数值型数据),以及类别型数据的有用信息。

flights.describe()

输出:

            year    passengers

count   144.000000   144.000000

mean   1954.500000   280.298611

std       3.464102   119.966317

min    1949.000000   104.000000

25%    1951.750000   180.000000

50%    1954.500000   265.500000

75%    1957.250000   360.500000

max    1960.000000   622.000000

查看类别列的唯一值

理解类别变量的基数很重要。下面的一行代码会返回每个类别型列的唯一值数量(以字典形式返回)。

{col: flights[col].nunique() for col in flights.select_dtypes(include=['category', 'object']).columns}

输出:

{'month': 12}

可以看到,月份有12个唯一值,正如预期。

查找变量间的相关性

这行代码计算所有数值型变量的相关性矩阵,帮助你辨别变量间的关系。

flights.corr()

分组聚合统计

该一行代码按类别变量分组,并一次性计算多个统计量。

flights.groupby('month')['passengers'].agg(['mean', 'min', 'max', 'std'])

输出:

        mean  min  max         std

month                            

Jan   241.750000 112 417 101.032960

Feb   235.000000 118 391  89.619397

Mar   270.166667 132 419 100.559194

Apr   267.083333 129 461 107.374839

May   271.833333 121 472 114.739890

Jun   311.666667 135 535 134.219856

Jul   351.333333 148 622 156.827255

Aug   351.083333 148 606 155.783333

Sep   302.416667 136 508 123.954140

Oct   266.583333 119 461 110.744964

Nov   232.833333 104 390  95.185783

Dec   261.833333 118 432 103.093808

可以看出乘客数量存在季节性波动,每月平均值也不同。

用IQR方法识别异常值

这行代码使用四分位距(IQR)方法识别异常值。低于Q1 - 1.5IQR或高于Q3 + 1.5IQR的值被认为是异常值。

Q1, Q3 = flights['passengers'].quantile(0.25), flights['passengers'].quantile(0.75)

flights[(flights['passengers'] < Q1 - 1.5 * (Q3 - Q1)) | (flights['passengers'] > Q3 + 1.5 * (Q3 - Q1))]

结果显示,该数据集中没有异常值。

绘制时间序列趋势图

对时间序列数据来说,趋势可视化至关重要。该一行代码可绘制乘客数量随年份变化的趋势图。

flights.plot(x='year', y='passengers', figsize=(12, 6), title='Passenger Trend Over Time')

输出为一条显示乘客数量随时间变化趋势的折线图。

计算环比变化

该命令计算前一周期的百分比变化,帮助你理解增长率。

flights.assign(pct_change=flights['passengers'].pct_change() * 100)

输出:

   year  month  passengers  pct_change

0   1949   Jan         112         NaN

1   1949   Feb         118    5.357143

2   1949   Mar         132   11.864407

3   1949   Apr         129   -2.272727

4   1949   May         121   -6.201550

...   ...   ...        ...        ...

139 1960   Aug         606   -2.572347

140 1960   Sep         508  -16.171617

141 1960   Oct         461   -9.251969

142 1960   Nov         390  -15.401302

143 1960   Dec         432   10.769231

[144 rows x 4 columns]

这展示了每个月乘客数量的环比百分比变化。

创建季节性分解可视化

这行代码将数据转换为以年份为行、月份为列的矩阵,并绘制可视化,展示各年份每月的季节性变化。

flights.pivot(index='year', columns='month', values='passengers').plot(figsize=(14, 8), title='Monthly Passenger Counts by Year')

输出为一张按年份区分的每月乘客数量折线图,揭示了季节性规律。

总结

这10个Pandas一行代码技巧展示了如何利用Pandas进行探索性数据分析。结合这些方法,你可以快速了解任何数据集的结构、内容和模式。

祝你数据分析愉快!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OO9KlbizMy1yOEBQ5Bhzz2Ag0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券