pandas数据读取与数据清洗 与 array区别

pandas数据处理

利用pandas我们可以像操作excel表一样方便地处理表格数据,从而实现利用python进行表格数据处理。
主要可以处理几种表格类型数据,包括:csv、excel、json等。

1. 数据读取

csv读取
import pandas as pd
missing_values = ["n/a", "na", "--"]
df = pd.read_csv('property-data.csv', na_values = missing_values)
excel读取

1.1csv读取数据:

1.参数Header=None:
只读取内容数据,不读取第一行表头

2.na_values = missing_values
在读取时可以设置空数据的类型

2.数据清洗:

利用pandas实现数据空值查找与去除、特殊字符转换;
灵活运用参数对指定的行列进行清洗和值替换、重复值去除、插值等。
0.将非数字转化为NaN
pd.to_numeric
1.空置查找替换
pd.isnull()
pd.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)

2.清洗格式错误数据:日期
pd.to_datetime()

3.清洗错误数据:例如设置阈值

4.去除重复数据
pd.duplicated()

5.填补数据:
pd.fillna()

https://www.runoob.com/pandas/pandas-cleaning.html

数据行列提取

0.获取行数:
行数:df.shape[0]
列数:df.shape[1]
【可以发现df的使用就像使用array一样】
1.读取单行、连续的、不连续的行列,读取块;
1) 使用df.loc 按照按字符(索引)(如,‘name’,‘sex’)取

具体参考:https://blog.csdn.net/in546/article/details/117304099

【更适用于知道列名称的情况,选择感兴趣的列】

2)df.iloc按照**位置(坐标)**提取,
print(df.iloc[1]) #按行取行数据
print(df.iloc[1, 3]) #按坐标取
print(df.iloc[[1], [3]]) #按坐标取
print(df.loc[df.index[1:3]]) #按行索引取行,但没必要
print(df.iloc[1:3]) #按行取连续数据
print(df.iloc[[1, 3]]) 按行取不连续数据
print(df.iloc[[1,2,3], [2,4]]) 取部分行部分列数据

与array的相互转化与区别

转化:
方法一 data=np.array(df)
方法二 data=df.values

1)比array多了索引的用法
2)df.iloc[1:3, :] 可以发现当加上iloc即可像操作array一样进行切片。
3)取不连续列时,直接利用列表取指定列
3)array中同样存在np.isnall()
4)当想利用pandas工具进行数据处理时,
可以利用array转化为panda,再使用各个函数进行数据处理。

random.seed()作用

生成一个列表。当放在循环里时,每次遍历指针指向第一个数,只要选取元素个数相同,则最终数据一样。不管是否重启程序,该序列都不变。
作用就像随机生成一列数,且把该列数固定了下来。

学习感受:
1.零星学习与系统学习相结合。两周前在菜鸟教程上看过pandas数据清洗的内容,但是在实际应用过程中对各个函数功能的使用零星的,也忘记了之前看的内容。要实时对整个库的功能进行复习。
2.学会实用工具,在实现一个功能时思考他的更本质的功能或者属类,例如,表格数据处理——>pandas; 传统统计数据分析与预测——>statsmodel;机器学习回归与聚类——>sklearn

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值