前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python语言做数据探索教程

Python语言做数据探索教程

作者头像
陆勤_数据人网
发布2018-02-28 12:03:48
1.3K0
发布2018-02-28 12:03:48
举报

本文总结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格式代码

代码语言:javascript
复制
import pandas as pd
csv_data <- pd.read_csv('user.csv')
print csv_data.head(6)

导入Excel格式代码

代码语言:javascript
复制
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格式代码

代码语言:javascript
复制
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 数据类型变换

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

代码语言:javascript
复制
str_output = str(int_input)int_output = int(str_input)float_output = float(str_input)

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

代码语言:javascript
复制
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做数据透视图,如图:

代码语言:javascript
复制
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做数据排序,可以针对一个变量或者多个变量进行升序或者降序操作。

代码语言:javascript
复制
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。 对于一份销售职员数据集

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

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

直方图

代码语言:javascript
复制
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()

散点图

代码语言:javascript
复制
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 列联表

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

代码语言:javascript
复制
import pandas as pddf = pd.read_excel('E:/employee.xlsx', 'Sheet1')print(df)test = df.groupby(['Gender','BMI'])test.size()

7 数据抽样

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

代码语言:javascript
复制
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()方法。

代码语言:javascript
复制
rem_dup=df.drop_duplicates(['Gender', 'BMI'])print rem_dup

9 数据聚合运算

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

代码语言:javascript
复制
test= df.groupby(['Gender'])test.describe()

10 数据缺失值识别和处理

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

代码语言:javascript
复制
df.isnull()

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

代码语言:javascript
复制
import numpy as npmeanAge = np.mean(df.Age)df.Age = df.Age.fillna(meanAge)

11 数据合并

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

代码语言:javascript
复制
df_new = pd.merge(df1, df2, how = 'inner', left_index = True, right_index = True) 
# 基于索引做连接## 拓展知识点:## 1 外连接,how='outer',左连接,how='left'## 2 也可以指定列进行关联
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学与人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 数据导入
  • 2 数据类型变换
  • 3 数据集变换
  • 4 数据排序
  • 5 数据可视化
  • 6 列联表
  • 7 数据抽样
  • 8 数据去重
  • 9 数据聚合运算
  • 10 数据缺失值识别和处理
  • 11 数据合并
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档