从零学python系列之数据处理编程实例(一)

  • Post category:Python

我会根据“从零学Python系列之数据处理编程实例(一)”的文章内容给出完整攻略。

一、技能要求和准备工作

在这篇文章中,作者首先提到了技能要求和准备工作:

技能要求

  • 熟练掌握 Python 基础语法;
  • 了解 pandas 库的基本使用方法。

准备工作

  • 安装 Python 3;
  • 安装 pandas 库;
  • 确保已经能够熟练使用 Jupyter Notebook 或者其他 Python 编辑器。

作者提到,警惕有些人认为自己“语法很牛”,但是“数据处理编程实例”这种文章还是太难了。文章并不是为了最终的结果而写的,而是为了让大家学习编程过程的方法。因此,如果你不能理解其中某一步的编程过程,可以一步一步地分析并理解,而不是跳过这一步。

二、数据准备

在这篇文章中,作者选用的数据是“北京市公交车线路”数据。作者首先介绍了如何下载数据的方法,然后在 Jupyter Notebook 中使用了 pandas 库来读取数据:

# 读取xlsx文件
df_raw = pd.read_excel('../data/bus_lines_data.xlsx', sheet_name='Sheet1')

因为“北京市公交车线路”数据中的字段名有点儿奇怪,因此作者针对字段名进行了必要的修改。

df_raw.columns = ['公交线路', '起点站', '终点站', '首班车时间', '末班车时间', '发车间隔']

三、数据分析

在这篇文章中,作者主要对“北京市公交车线路”数据进行了以下分析:

  • 分析数据中的缺失值;
  • 对公交线路、首班车时间、末班车时间等字段进行去重;
  • 对发车间隔进行了一些基本的统计分析。

分析数据中的缺失值

# 统计每个字段中的缺失值
df_raw.isnull().sum()

对公交线路、首班车时间、末班车时间等字段进行去重

# 公交线路去重
df_lines = df_raw.drop_duplicates(subset='公交线路')

# 首班车时间去重
df_departure_time = df_raw.drop_duplicates(subset='首班车时间')

# 末班车时间去重
df_arrival_time = df_raw.drop_duplicates(subset='末班车时间')

对发车间隔进行了一些基本的统计分析

# 最大发车间隔
max_interval = df_raw['发车间隔'].max()
print('最大发车间隔: {}分钟'.format(max_interval))

# 最小发车间隔
min_interval = df_raw['发车间隔'].min()
print('最小发车间隔: {}分钟'.format(min_interval))

# 平均发车间隔
avg_interval = df_raw['发车间隔'].mean()
print('平均发车间隔: {:.2f}分钟'.format(avg_interval))

# 中位数发车间隔
median_interval = df_raw['发车间隔'].median()
print('中位数发车间隔: {}分钟'.format(median_interval))

# 所有发车间隔总和
sum_interval = df_raw['发车间隔'].sum()
print('所有发车间隔总和: {}分钟'.format(sum_interval))

四、数据可视化

在这篇文章中,作者使用了 matplotlibseaborn 库来进行数据可视化。

条形图

这里是一个绘制 df_lines 条形图的代码示例:

plt.bar(df_lines['公交线路'], df_lines['发车间隔'])
plt.xticks([])
plt.title('北京市公交车各线路发车间隔对比')
plt.ylabel('发车间隔(分钟)')
plt.show()

直方图

这里是一个绘制 df_raw 直方图的代码示例:

sns.distplot(df_raw[df_raw['发车间隔'].notnull()]['发车间隔'], kde=False)
plt.title('北京市公交车发车间隔直方图')
plt.xlabel('发车间隔(分钟)')
plt.show()

五、总结

在本文中,作者首先介绍了应该掌握的技能和准备工作,然后对“北京市公交车线路”数据进行了分析,并通过数据可视化的方式展示了分析结果。这篇文章对于 Python 初学者来说,是一个非常好的例子,它展示了如何掌握基本的数据处理技能,并使用 Python 进行可视化分析。