Python语言做数据探索教程

本文总结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 也可以指定列进行关联

原文发布于微信公众号 - 数据科学与人工智能(DS_AI_shujuren)

原文发表时间:2017-07-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏老马说编程

(34) 随机 / 计算机程序的思维逻辑

随机 本节,我们来讨论随机,随机是计算机程序中一个非常常见的需求,比如说: 各种游戏中有大量的随机,比如扑克游戏洗牌 微信抢红包,抢的红包金额是随机的 北京购...

2676
来自专栏marsggbo

Udacity并行计算课程笔记- Fundamental GPU Algorithms (Reduce, Scan, Histogram)

如下图示,第一种情况只有一个工人挖洞,他需要8小时才能完成,所以工作总量(Work)是8小时。第二种情况是有4个工人,它们2个小时就能完成挖洞任务,此时工作总量...

1331
来自专栏null的专栏

数据结构和算法——用动态规划求解最短路径问题

一、动态规划求解问题的思路     在《算法导论》上,动态规划的求解过程主要分为如下的四步: 描述最优解的结构 递归定义最优解的值 按自底向上的方式计算最优解的...

4775
来自专栏计算机视觉与深度学习基础

HDU4832

由于水平和竖直相互独立,所以可以分开计数,最后再用组合数算一下,万年老坑long long #include<cstdio> #include<iostream...

20710
来自专栏程序员叨叨叨

7.1 Cg 关键字第 7 章 输入\输出与语义绑定

第三章从 GPU 运行原理和数据流程的角度阐述了顶点着色程序和片段着色程序的输入输出,即,应用程序(宿主程序)将图元信息(顶点位置、法向量、纹理坐标等)传递给顶...

1553
来自专栏算法修养

整数划分总结

整数划分问题: 笼统上说就是将一根整数划分成若干个整数之和的方案数。整数划分很多不同的问法,也有隐晦的问法。比如n个苹果放到m个盘子里,比如n个砖块堆成m个...

3216
来自专栏IT派

干货 | PyTorch相比TensorFlow,存在哪些自身优势?

1、 PyTorch 课替代NumPy 使用:PyTorch 本身主要构件是张量——和 NumPy 看起来差不多。使得 PyTorch 可支持大量相同的 API...

1.6K4
来自专栏freesan44

python 算法开发笔记

1842
来自专栏大数据挖掘DT机器学习

python数据分析师面试题选

python数据分析部分 1. 如何利用SciKit包训练一个简单的线性回归模型 利用linear_model.LinearRegression()函数 #...

6326
来自专栏漫漫深度学习路

tensorflow学习笔记(四十):tensorflow语音识别 及 python音频处理库

tensorflow 语音识别 最近在做语音识别的项目,现在项目告一段落,就把最近碰到的东西做一个总结。 python中关于语音处理的库 scipy.io.wa...

1.2K9

扫码关注云+社区

领取腾讯云代金券