Python语言做数据探索教程

时间:2022-04-29
本文章向大家介绍Python语言做数据探索教程,主要内容包括1 数据导入、2 数据类型变换、3 数据集变换、4 数据排序、5 数据可视化、6 列联表、7 数据抽样、8 数据去重、9 数据聚合运算、10 数据缺失值识别和处理、11 数据合并、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

本文总结Python语言做数据探索的知识。

类似R语言做数据探索,利用Python语言做数据探索。

  • 1 数据导入
  • 2 数据类型变换
  • 3 数据集变换
  • 4 数据排序
  • 5 数据可视化
  • 6 列联表
  • 7 数据抽样
  • 8 数据去重
  • 9 数据聚合运算
  • 10 数据缺失值识别和处理
  • 11 数据合并

1 数据导入

数据格式常有:csv、tsv、txt、xlsx和json等。 Python可以方便地导入这些数据格式。 利用Python的pandas库做数据导入,把导入的数据存放在一个DataFrame对象里,主要函数如下:

导入csv格式代码

import pandas as pd
csv_data <- pd.read_csv('user.csv')
print csv_data.head(6)

导入Excel格式代码

import pandas as pd
#导入student.xlsx里basic_info表xlsx_data <- pd.read_excel('D:/student.xlsx', 'basic_info') 
print xlsx_data.head(6)

导入txt或者tsv格式代码

import pandas as pdtxt_data <- pd.read_csv('customer.txt', sep = 't')print txt_data.head(6)tsv_data <- pd.read_table('customer.tsv')print tsv_data.head(6)

2 数据类型变换

数据类型变化是数据处理的一种常用操作。 数值变量转换为字符串变量或者字符串变量转换为数值变量

str_output = str(int_input)int_output = int(str_input)float_output = float(str_input)

字符串变量转换为日期变量

from datetime import datetimestr_date = 'Apr 1 2017 1:20 PM'date_obj = datetime.strptime(str_date, '%b %d %Y %I:%M%p')print(date_obj)

3 数据集变换

Python做数据透视图,如图:

import pandas as pddf = pd.read_excel('E:/product.xlsx', 'Sheet1')print(df)result = df.pivot(index = 'ID', columns='Product', values='Sales')print(result)

4 数据排序

Python做数据排序,可以针对一个变量或者多个变量进行升序或者降序操作。

import pandas as pddf1 = pd.read_excel('E:/product.xlsx', 'Sheet1')print(df1)result1 = df1.sort(['Product', 'Sales'], ascending = [True, False])

5 数据可视化

数据可视化可以更加容易方便地认识和理解数据。 Python做数据可视化的常用库:matplotlib和seaborn。 对于一份销售职员数据集

使用数据可视化解决这些问题:

  • 年龄的分布
  • 年龄与销量的关系

直方图

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_excel('E:/employee.xlsx', 'Sheet1')
fig = plt.figure()ax = fig.add_subplot(1,1,1)
ax.hist(df['Age', bins=5])plt.title('Age distribution')
plt.xlabel('Age')
plt.ylabel('#Employee')
plt.show()

散点图

import matplotlib.pyplot as pltimport pandas as pddf = pd.read_excel('E:/employee.xlsx', 'Sheet1')fig = plt.figure()ax = fig.add_subplot(1,1,1)ax.scatter(df['Age'], df['Sales'])plt.title('Sales and Age distribution')plt.xlabel('Age')plt.ylabel('Sales')plt.show()

6 列联表

列联表常用于理解一个或者多个分类变量的分布。

import pandas as pddf = pd.read_excel('E:/employee.xlsx', 'Sheet1')print(df)test = df.groupby(['Gender','BMI'])test.size()

7 数据抽样

数据抽样可以快速方便地理解数据。 Python做数据抽样利用numpy和random模块

import numpy as np
import pandas as pd
from random import sample
df = pd.read_excel('E:/employee.xlsx', 'Sheet1')
rindex = np.array(sample(xrange(len(df), 5)))
dfr = df.ix[rindex]print(dfr)

8 数据去重

Python去掉数据集中重复记录,使用dataframe.drop_duplicates()方法。

rem_dup=df.drop_duplicates(['Gender', 'BMI'])print rem_dup

9 数据聚合运算

Python对数据做摘要分析,即快速获取数据最小值、最大值、平均值等信息,使用dataframe.describe()方法。

test= df.groupby(['Gender'])test.describe()

10 数据缺失值识别和处理

Python识别数据缺失值用dataframe.isnull()

df.isnull()

缺失值处理方法:1)删除方法、2)插补方法 以插入均值修补变量缺失值为例

import numpy as npmeanAge = np.mean(df.Age)df.Age = df.Age.fillna(meanAge)

11 数据合并

数据连接与合并是把不同数据源集成在一块的常用操作。 使用pandas的merge方法

df_new = pd.merge(df1, df2, how = 'inner', left_index = True, right_index = True) 
# 基于索引做连接## 拓展知识点:## 1 外连接,how='outer',左连接,how='left'## 2 也可以指定列进行关联