目录
2.6.3用pandas describe()函数查看数据基本统计信息
一、pandas介绍
pandas主要是Python语言的一个扩展程序库,提供了高效、灵活、易用的数据结构,专门用于数据操作和分析。
Pandas的主要功能包括:
数据清洗:处理缺失数据、重复数据、异常值等。
数据选择和过滤:通过标签或位置选择数据子集。
数据操作:合并、连接、重塑和透视数据。
数据分组和聚合:按照某些标准分组数据,并进行聚合计算。
时间序列分析:支持时间索引和时间序列数据的处理。
数据输入和输出:读取和写入多种数据格式,如CSV文件、Excel表格、数据库等。
二、pandas应用
以文件http://"C:\Users\13834\Desktop\pandas入门\train.csv"为例
(一)pandas的打开
在终端中使用conda建立python环境,打开jupyter notebook。创建新notebook。
(二)数据加载及数据处理
2.1载入数据
2.1.1导入numpy和pandas
import numpy as np
import pandas as pd
2.1.2载入数据
(1)使用相对路径载入数据
df = pd.read_csv('文件名称')
df
(2)使用绝对路径载入数据
df = pd.read_csv(r'文件地址')
如果相对路径载入报错,尝试使用os。getcwd()查看当前工作目录。
2.1.3逐块读取
使用pd.read_csv('文件名',chunksize=n) #n为任意数
chunker = pd.read_csv('./train.csv',chunksize=10)
for i in chunker:
print(i)
2.1.4改表头
使用pd.read_csv('文件名',names=[替换的表头名])
df = pd.read_csv('train.csv',names=['乘客ID','是否幸存','乘客等级(1/2/3等舱位)','乘客姓名','性别','年龄','堂兄弟/妹个数','父母与小孩个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header = 0)
df
2.2初步观察
导入数据后,需要对数据的整体结构和样例进行概览,比如说,数据大小、有多少列,各列都是什么格式的,是否包含null等。
2.2.1查看数据的基本信息
使用df.info()
2.2.2观察表格前几行的数据
使用df.head(n) #n为行数
2.2.3判断数据是否为空
为空的地方返回True,其余地方返回False
使用df.isnull().head(n) #n为行数
2.3保存数据
2.3.1将数据保存为一个新文件
使用.to_csv('新文件名')
2.4了解数据类型
2.4.1了解DateFrame和Series
在 pandas 中,DataFrame 和 Series 是两种核心的数据结构,它们用于处理和分析数据。
Series 是 pandas 中的一维数据结构,类似于一维数组或列表。它由两部分组成:
索引:默认情况下,创建 Series 时会自动生成一个整数索引,也可以通过指定索引来创建具有自定义索引的 Series。
数据:存储在 Series 中的实际数据,可以是整数、浮点数、字符串、Python 对象等。
DataFrame是 pandas 中的二维数据结构,可以看作是由多个 Series 对象按列排列构成的表格。
每列可以是不同的数据类型(整数、浮点数、字符串等)。
可以通过行索引和列索引来访问和操作数据。
2.4.2查看DateFrame数据的每列的名称
使用.columns
2.4.3查看一列中的所有值
使用['列标题'].head(n) #n为行数
使用.列标题.head(n) #n为行数
2.4.4对比两文件有哪些多出的列并将多出的列删除
分析例子可知,测试集test_1.csv有一列是多余的
test1 = pd.read_csv('test_1.csv')
test1
del test1['a']
test1.head(3)
删除方法有
1.使用drop方式删除列
2.使用上述del方式
3.选择需要保留的列重新构建DataFrame
2.4.5隐藏列元素
使用.drop([列名称],axis=1).head(3)
2.5筛选的逻辑
2.5.1筛选数据并显示
以”Age“为筛选条件,显示年龄在10岁以下的人员信息
使用df[df['Age']<10].head(3)
2.5.2筛选数据并将符合条件的数据重命名
以”Age“为条件,将年龄在10岁以上和50岁以下的乘客信息,并将这个数据命名为midage
midage = df[(df['Age'])>10&(df['Age']<50)]
midage.head(3)
2.5.3显示某一行的数据
使用.loc[[n],['列名称']
2.5.4使用loc方法显示某行某列数据
使用.loc[[行数],[列名称]]
2.5.5使用iloc方法显示某行某列数据
使用.iloc[[行数],[列数]]
2.6了解数据
2.6.1对数据进行排序,要求升序
frame = pd.DataFrame(np.arange(8).reshape((2, 4)),
index=['2', '1'],
columns=['d', 'a', 'b', 'c'])
frame
pd.DataFrame() :创建一个DataFrame对象
np.arange(8).reshape((2, 4)) : 生成一个二维数组(2*4),第一列:0,1,2,3 第二列:4,5,6,7
index=['2, 1] :DataFrame 对象的索引列
columns=['d', 'a', 'b', 'c'] :DataFrame 对象的索引行
让行索引升序排列frame.sort_index()
让列索引升序排序frame.sort_index(axis=1)
让列索引降序排序frame.sort_index(axis=1,ascending=False)
让任选两列数据同时降序排序frame.sort_values(by=['a','c'],ascending=False)
2.6.2利用pandas进行算术计算
#建立一个例子
frame1_a = pd.DataFrame(np.arange(9.).reshape(3, 3),
columns=['a', 'b', 'c'],
index=['one', 'two', 'three'])
frame1_b = pd.DataFrame(np.arange(12.).reshape(4, 3),
columns=['a', 'e', 'c'],
index=['first', 'one', 'two', 'second'])
frame1_a
frame1_b
frame1_a+frame1_b
2.6.3用pandas describe()函数查看数据基本统计信息
#建立一个例子
frame2 = pd.DataFrame([[1.4, np.nan],
[7.1, -4.5],
[np.nan, np.nan],
[0.75, -1.3]
], index=['a', 'b', 'c', 'd'], columns=['one', 'two'])
frame2
# 调用 describe 函数,观察frame2的数据基本信息
'''
count : 样本数据大小
mean : 样本数据的平均值
std : 样本数据的标准差
min : 样本数据的最小值
25% : 样本数据25%的时候的值
50% : 样本数据50%的时候的值
75% : 样本数据75%的时候的值
max : 样本数据的最大值
'''
frame2.describe()