4.Python中pandas对数据的操作

文章介绍了使用Pandas库进行数据处理的一些基本操作,包括利用head()和tail()查看数据,info()获取数据类型,shape检查数据规模,describe()分析数值分布。在列操作部分,展示了如何修改列名,选择和删除列,以及添加新列。最后,讨论了数据类型转换的方法,如astype()函数的应用。
摘要由CSDN通过智能技术生成

1.了解数据

head()与 tail()
当数据表中包含了数据行数过多时,而我们又想看一下每一列数据都是什么样的数据时,
就可以把数据表中前几行或后几行数据显示出来进行查看:
head()方法返回前 n 行(观察索引值),显示元素的数量默认是 5,但可以传递自定义数值
tail()方法返回后 n 行观察索引值),显示元素的数量默认是 5,但可以传递自定义数值

import pandas as pd
df = pd.read_excel("stu_data.xlsx")
# 查看前几行数据,默认是5
df.head(10)

在这里插入图片描述

# 查看后几行数据,默认是5
df.tail()

在这里插入图片描述
info()
熟悉数据的第一点就是看下数据的类型,不同的数据类型的分析思路是不一样的,比如说
数值类型的数据就可以求均值,但是字符类型的数据就没法求均值了。
info()方法查看数据表中的数据类型,而且不需要一列一列的查看,
info()可以输出整个表 中所有列的数据类型。

# 查看数据类型
df.info()

在这里插入图片描述
shape
熟悉数据的第二点就是看下数据表的大小,即数据表有多少行,多少列 。
shape()方法会以元组的形式返回行、列数。注意 shape 方法获取行数和列数时不会把索
引和列索引计算在内。

# 查看数据表的大小
df.shape

在这里插入图片描述
describe()
熟悉数据的第三点就是掌握数值的分布情况,即均值是多少,最值是多少,方差及分位数
分别是多少 。
describe()方法就是可以就可以获取所有数值类型字段的分布值。

# 查看数据所有数值类型字段的分布值
df.describe()

在这里插入图片描述

2.列操作

2.1 修改变量列

import pandas as pd
df = pd.read_excel('stu_data.xlsx')
# 修改变量列
# 方法1:columns(适用于变量列少的,必须把全部的列名称写入,不进行修改的就填如原名称)
print('获取所有修改前的列名称:\n',df.columns)
# 修改
df.columns = ['学号1', '性别1', '身高1', '体重1', '支出', '开设', '课程', '软件1']
print('获取所有修改后的列名称:\n',df.columns)

# 方法2:使用rename,注意:rename使用时必须添加inplace=True或者保存到一个变量中,因为他是返回一个新的表
# rename(columns={'旧列名称':'新列名称'})
print('获取所有修改前的列名称:\n',df.columns)
# 修改1: 不使用inplace
df.rename(columns={'学号1':'学号2','性别1':'性别2'})
print('获取所有修改后的列名称(修改1: 不使用inplace):\n',df.columns)
# 修改2:使用inplace
df.rename(columns={'学号1':'学号2','性别1':'性别2'},inplace=True)
print('获取所有修改后的列名称(修改2: 使用inplace):\n',df.columns)

在这里插入图片描述

2.2筛选变量列

# 1.选择一列数据方法
# 1.1 方法1
print('选择一列数据方法1:\n',df.课程)
# 1.2 方法2
print('选择一列数据方法2:\n',df['课程'])

# 2. 选择多列(DataFrame输出单列)
# 2.1 选择多列DataFrame
print('2.1 选择多列DataFrame:\n',df[['学号2','性别2']])
# 2.2 DataFrame输出单列
print('2.2 DataFrame输出单列:\n',df[['学号2']])

2.3列操作删除变量列

# 方法1:drop
# df.drop(
    # index/columns = 准备删除的行/列标签,多个时用列表形式提供
    # inplace = False 是否直接更改原数据框中的数据!!!!!默认是不修改,这也是为什么删除了,但是数据表中删除失败的原因
# )
# 删除单列数据
df.drop(columns='学号2',inplace=True)
# 删除多列数据
df.drop(columns=['性别2','身高1'],inplace=True)

# 方法2:del
# del data['column-name'] 直接删除原数据框相应的一列,建议少用
del df['支出']
df

2.4列操作添加变量列

df = pd.read_excel('stu_data.xlsx')
# 添加变量列
# 1.根据新数据添加列(对应索引添加)
df['new_col'] = pd.Series([1,2,3,4,5,6,7],index=[1,2,3,4,5,6,7])
# 2.根据原数据计算后添加(身高/体重)
df['身高体重之比'] = df['身高']/df['体重']
df

在这里插入图片描述

3.数据类型转换

Pandas 支持的数据类型具体类型是 Python, Numpy 各种类型的混合,可以比下表分的更细

  • float
  • int
  • string
  • bool
  • datetime64[nsr] datetime64[nsr,tz] timedelta[ns]
  • category 分类
  • object 文本或字符串
import pandas as pd
df = pd.read_excel('stu_data.xlsx')
# 查看数据类型
# 方法1:查看所有的数据类型包括空值、数量
print('方法1:查看所有的数据类型包括空值、数量:\n', df.info())
# 方法2:只查看数据类型
print('方法2:只查看数据类型(全部数据):\n', df.dtypes)
print('方法2:只查看数据类型(指定列的数据):\n', df.学号.dtypes)
# df.astype(
#  dtype :指定希望转换的数据类型,可以使用 numpy 或者 python 中的数据类型: int/float/bool/str
#  copy = True :是否生成新的副本,而不是替换原数据框, 默认是不替换原数据
#  errors = 'raise' : 转换出错时是否抛出错误,
# raise/ ignore )

# 为了方便测试,这里统一不替换原数据
# 转换全部表的数据类型
print('转换全部表的数据类型后的数据类型:\n',df.astype('str').dtypes)

# 转换一行的数据类型
print('转换一行的数据类型:\n',df['学号'].astype('int').dtypes)

# 转化多行的数据类型
print('转化多行的数据类型:\n',df[['学号','身高','体重']].astype('int').dtypes)

# 出现异常时处理(默认时给出报错,这里测试忽略)
print('出现异常时处理(默认时给出报错,这里测试忽略):\n',df['课程'].astype('int',errors='ignore').dtypes)

在这里插入图片描述
在这里插入图片描述
旧版本方法:
pd.to_datetime ()
pd.to_timedelta ()
pd.to_numeric ()
df.to_string()
pd. to_numeric (df .cloumn)
可以通过 df. apply 来批量逬行多列的转换
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值