Python数据分析之Pandas学习(二)

时间:2024-03-23 16:12:14

利用python进行数据分析pandas方法总结

1.Numpy简单介绍

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

2.使用pandas产生结构化数据

Python数据分析之Pandas学习(二)

增加栏位信息

df.colums = ['name', 'gender', 'age']

Python数据分析之Pandas学习(二)

3.序列(Series)

类似Array,List的一维物件

每个Series都可以透过其索引(Index)进行存取

预设Series会以0到Series长度作为索引编号

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

4.资料筛选

根据索引来显示信息

df.ix[1] 显示第一行信息

df.ix[1:4] 显示第一行到第四行信息

 

根据栏位信息来显示信息

df['name']

df[['name', 'age']]

 

Python数据分析之Pandas学习(二)

使用&取条件交集

df[(df['gender'] == 'M') & (df['age'] >= 30) ]

Python数据分析之Pandas学习(二)

使用 | 取条件并集

df[(df['gender'] == 'M') | (df['age'] >= 30) ]

Python数据分析之Pandas学习(二)

新增/删除栏位

Python数据分析之Pandas学习(二)

注意:如果是0删除的是列,如果是1删除的是栏位

Python数据分析之Pandas学习(二)

新增第6行

Python数据分析之Pandas学习(二)

df.append(pd.DataFrame([{'age':20,'gender':'F','name':'qoo'}]))

删除第6行

df.drop(6)

设定新的索引

Python数据分析之Pandas学习(二)

根据位置取值

Python数据分析之Pandas学习(二)

根据索引取值

Python数据分析之Pandas学习(二)

范例:

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

缺失值:

1.数据中有特定或一个范围的值是不完全的

2.缺失值可能会导致数据分析时产生偏误的推论

3.缺失值可能来自机械的缺失或是人为的缺失

  •     机械缺失e.g.机械故障,导致数据无法被完整保存

  •     人为缺失e.g.受访者拒绝透露部分信息

范例:

Python数据分析之Pandas学习(二)

检查序列是否有缺失值

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

检查字段或Data Frame是否含有缺失值

Python数据分析之Pandas学习(二)

范例:

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二).

Python数据分析之Pandas学习(二)

计算缺失值的数量

Python数据分析之Pandas学习(二)

范例:

Python数据分析之Pandas学习(二)

查看所有的缺失值

Python数据分析之Pandas学习(二)

查看各栏位缺失值的数量

Python数据分析之Pandas学习(二)

所有缺失值的总和

Python数据分析之Pandas学习(二)

处理缺失值

  • 舍弃缺失值
  1. 当缺失值占数据比例很低时
  • 使用平均数、中位数、众数等叙述性统计补齐缺失值
  • 使用内插法补齐缺失值
  1. 如果字段数据成线性规律

1.舍弃缺失值

Python数据分析之Pandas学习(二)

范例:

Python数据分析之Pandas学习(二)
Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

2.舍弃含有缺失值的列

Python数据分析之Pandas学习(二)
范例:

Python数据分析之Pandas学习(二)
Python数据分析之Pandas学习(二)
3.填补缺失值

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

4.向前/向后填值

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

5.使用内插法填补缺失值

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

通过某种线性规律填充值

Python数据分析之Pandas学习(二)

查看前几行资料

df.head(3)

查看后三行资料

df.tail(3)

删除特定的某列

del df['Unamed: 0']

将‘暂无资料’变成缺失值

import numpy as

df.ix[df['物业费'] == '暂无资料','物业费'] == np.nan

df.head(3)

Python数据分析之Pandas学习(二)

import pandas

df = pandas.read_csv('data/xxx.csv', na_values='暂无资料',index_col=0)

df.head(3)

Python数据分析之Pandas学习(二)

查看DataFrame信息

df.info()

 

查看字段名称

df.columns

查看字段型态

df.dtypes

取得叙述性统计

df.describe()

Python数据分析之Pandas学习(二)

侦测缺失值

df.isnull()

查看字段是否包含缺失值

df.isnull().any()

统计各栏位缺失值数量

df.isnull().sum()

删除有缺失值的字段

df = df.drop('参考月供',axis = 1)

筛选字段

df['产权性质'].value_counts()

Python数据分析之Pandas学习(二)

df['产权性质'] == '个人产权'

Python数据分析之Pandas学习(二)

根据索引取值

df.iloc[5:7]

舍弃包含缺失值的字段

df['建筑类别'].isnull().head(3)

Python数据分析之Pandas学习(二)

df = df.dropna(axis=1,how='all')

Python数据分析之Pandas学习(二)

补齐缺失值

df['物业费'] = df['物业费'].fillna(0)

Python数据分析之Pandas学习(二)

df[df['总价'].isnull()].sum()

2

df[df['总价'].isnull()]

Python数据分析之Pandas学习(二)

计算平均值

(df['总价']/df['建筑面积']).mean()

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

将数据写入csv中

df.to_csv('xxx.csv', index_label=False)

  • Map

将函数套用到Series上的每个元素

  • Apply

将函数套用到DataFrame上的行与列

  • ApplyMap

将函数套用到DataFrame上的每个元素(elementwise)

Python数据分析之Pandas学习(二)

默认 axis = 0,按列计算最高和最低差值

axis = 1,按行计算最高和最低差值

Python数据分析之Pandas学习(二)

Python数据分析之Pandas学习(二)

处理时间格式资料

打印出现在时间

from datetime import datetime

current_time = datetime.now()

将时间转换成字符串

current_time.strftime('%Y-%m-%d')

将字符串转换为时间

datetime.strptime('2018-9-11','%Y-%m-%d')

Python数据分析之Pandas学习(二)