Python之数据处理

本文深入探讨了Python中的数据处理,重点介绍了Numpy的数组创建、查看维度和数据类型以及数组运算,同时详细讲解了Pandas的Series、DataFrame以及数据导入导出、数据处理技巧,包括处理重复值、缺失值、字段抽取和匹配,以及数据标准化、分组和日期处理等实践操作。
摘要由CSDN通过智能技术生成

Numpy

一、数组的创建

1.创建数组

通过numpy中的array方法,可以创建一维、二维以及多维数组。每增加一维,则增加一层嵌套关系。

import numpy as np
# 一维数组
data1=[1,2,3,4,5]
array1=np.array(data1)
# 二维数组
data2=[[1,2,3],[4,5,6]]
array2=np.array(data2)
#三维数组
data3=[[[1,2,3],[4,5,6]]]
array3=np.array(data3)

二、查看数组的维度和数据类型

1.测试维度

array1.ndim

2.查看维度大小

import numpy as np
data2=[[1,2,3],[4,5,6]]
array2=np.array(data2)
array2.shape

在这里插入图片描述
输出结果中第一个数字代表最外层嵌套的维度下数组的个数,第二个数代表里层的维度下数组的个数。

3.查看数组元素的数据类型

array1.dtype

4.修改元素数据类型

array1.astype('str')

三、数组元素的引用与运算

Pandas

一、Series

Series作为一维数组,能保存不同类型的数据,用于储存一行或一列数据,并有与之对应的索引集合。

from pandas import Series
# 创建Series数组
s1 = Series(['wangxing','man',24],index=['name','sex','age'])
# 显示索引
s1.index
# 显示值
s1.values
# 按索引名访问
s1['name']
# 按索引号访问,与索引名可同时使用
s1[0]
# 通过索引修改值
s1['name']='liu'
# 可通过字典创建Series数组
sd = {
   'python':9000,'c++':9001,'c#':9000}
s2=Series(sd)

二、DataFrame

DataFrame作为二维的表格型数据结构,可用于存储多行和多列的数据集合。

from pandas import DataFrame
# 通过字典创建表格
data = {
   
		"name":['google','baidu','alibaba'],
		"marks":[100,200,300],
		"price":[1,2,3]
		}
df1 = DataFrame(data) 
# 自定义列顺序
df2=DataFrame(data,columns=['price','name','marks'])# name与price进行了交换
# 自定义索引
df3 = DataFrame(data,columns=['name','marks','price'], index=['a','b','c'])
# 按行名、列名访问表格
df3.at['a','name']
# 按列名、行名访问表格
df3['name']['b']
# 访问行
df4[1:]
# 修改数据
df4['name']['a']='youtobe'

三、数据导入

四、数据导出

五、数据处理

1.处理重复值

from pandas import DataFrame
from pandas import Series

df=DataFrame({
   
			'age':Series([26,85,64,85,85]),
			'name':Series(['张三','王二','小小','王二','李李'])
			})
#默认删除所有行重复元素,当行元素全部相同才会删除
df.drop_duplicates()
#删除除第一个、最后一个、所有重复数据。keep代表无保留
df.drop_duplicates(keep=False)
#删除指定列的重复数据,该列一但出现相同数据则删除整行
df.drop_duplicates(subset='age')

2.处理缺失值

主要通过dropna()去除缺失值,fillna()填充缺失值。
在这里插入图片描述

df=read_excel(r'C:\Users\彦哥\Desktop\rz.xlsx', 'Sheet1', header=1)
# 去除值为空的数据行(只要有一个数据为空,整行去之)
df.dropna()
# 除非整行数据为空,否则不弃
df.dropna(how='all')
# 照列丢弃
df=df.dropna(axis=1)
# 替代缺失值
df=df.fillna('?')
# 利用字典对不同列填充不同的值
df=df.fillna({
   '军训':0})
# 使用前一个(同一列)数据替代
df=df.fillna(method='pad')
df=df.fillna(method='ffill')
# 使用后一个(同列)数据替代
df=df.fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值