(一)数据加载及探索性数据分析

本文介绍如何使用Python的Pandas库进行数据处理,以泰坦尼克号数据集为例,涵盖数据导入、预览、筛选、排序等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导入numpy和pandas
# 如果没安装这两个库可以通过
# conda install numpy 或者 pip install numpy
# conda install pandas 或者 pip install pandas
import numpy as np
import pandas as pd
载入数据
image-20200816110515081

虽然有上面那么多种用法,不过用的最多的还是read_csvread_table这两个。

这次学习使用的是泰坦尼克号的数据,kaggle链接——https://www.kaggle.com/c/titanic/overview

#写入代码
df_relative = pd.read_csv('train.csv')
df_relative.head()

image-20200816111116875

这些特征的含义出题者也是给出了解释。

image-20200816113903794

当相对路径报错的时候,可以尝试使用绝对路径。

import os
#os.getcwd()查看当前目录
os.getcwd() + 'train.csv' # 绝对路径
逐块读取

当一个csv文件比较大的时候,如果直接读取整个csv,服务器的内存是吃不消的,因此需要用chunksize去分块处理。

  df=pd.read_csv('data.csv', chunksize=1000) # chunksize自己设置for chunk in df:
      print(chunk)
将表头英文换成中文,并且将乘客ID设置成索引
# 方法1 在读取文件的时候就设置
df = pd.read_csv('train.csv', names=['乘客ID','是否幸存','仓位等级','姓名','性别','年龄','兄弟姐妹个数','父母子女个数','船票信息','票价','客舱','登船港口'],index_col='乘客ID',header=0)
df.head()
# 方法2 读取文件还是一样读取,在后面设置
d = {'PassengerId':'乘客ID', 'Survived':'是否幸存', 'Pclass':'仓位等级', 'Name':'姓名', 'Sex':'性别', 	 'Age':'年龄','SibSp':'兄弟姐妹个数', 'Parch':'父母子女个数', 'Ticket':'船票信息', 'Fare':'票价',     	   'Cabin':'客舱', 'Embarked':'登船港口'}
df_table.rename(columns=d, inplace=True) # 更换名字
df_table.set_index('乘客ID', inplace=True) # 设置索引
df_table.head()

image-20200816114650488

基本用法
df.info() 
df.head() # 前五行
df.tail() # 后五行
df.isnull() # 判断数据是否为空,空的地方是True
df.to_csv('train_chinese.csv') # 将DataFrame导出为csv文件
删除多余的列
del df[a] # a是列的名称
df('a', axis=1, inplace=True) # 跟上面的效果一样
筛选

例子: 以"Age"为条件,将年龄在10岁以上和50岁以下的乘客信息显示出来,并将这个数据命名为midage

midage = df[(df["Age"]>10)& (df["Age"]<50)]
midage.head(5)

image-20200816115236212

例子:将midage的数据中第100行的"Pclass"和"Sex"的数据显示出来

midage.loc[[100],['Pclass','Sex']]
image-20200816115417706

例子:使用loc方法将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来

midage.loc[[100,105,108],['Pclass','Name','Sex']]
image-20200816115509038

例子:使用iloc方法将midage的数据中第100,105,108行的"Pclass","Name"和"Sex"的数据显示出来

midage.iloc[[100,105,108],[2,3,4]]

image-20200816115541392

排序

原始数据为:image-20200816115749253

例子1:让行索引升序排序

df_table.sort_index(axis=0)
image-20200816115846642

例子2:让列索引升序排序

df_table.sort_index(axis=1)
image-20200816115930866

例子3:任选两列数据同时降序排序

df_table.sort_values(['d', 'b'], ascending=[False, False])
image-20200816120006619

小总结:如果是要按行索引或者列索引则使用sort_index(),如果要按值排序则使用sort_value()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值