初识数据分析01——Pandas入门

初识数据分析01——Pandas入门

数据处理

  • 导入 Pandas 与 NumPy:
In [1]: import numpy as np

In [2]: import pandas as pd
  • 载入数据
pd.read_csv()
  • 分块读取
pd.read_csv('train.csv', chunksize=1000)
  • 查看数据的基本信息
df.info()
  • 判断数据是否为空,为空的地方返回True,其余地方返回False
df.isnull().
  • 保存数据
df.to_csv()

数据类型

Series

Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。

Series 由索引(index)和列组成,函数如下:

pandas.Series( data, index, dtype, name, copy)

参数说明:

  • data:一组数据(ndarray 类型)。
  • index:数据索引标签,如果不指定,默认从 0 开始。
  • dtype:数据类型,默认会自己判断。
  • name:设置名称。
  • copy:拷贝数据,默认为 False。
DataFrame

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

DataFrame 构造方法如下:

pandas.DataFrame( data, index, columns, dtype, copy)

参数说明:

  • data:一组数据(ndarray、series, map, lists, dict 等类型)。
  • index:索引值,或者可以称为行标签。
  • columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。
  • dtype:数据类型。
  • copy:拷贝数据,默认为 False。

例:

pd.DataFrame(np.arange(8).reshape((2,4)),index=[2,1],columns=['d', 'a', 'b', 'c'])
# 构建一个有数字有空值的DataFrame数据
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

【代码解析】

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 对象的索引行

相加

两个DataFrame相加后,会返回一个新的DataFrame,对应的行和列的值会相加,没有对应的会变成空值NaN

查看列名

假定有数据集df,格式为dataframe,现想获取其列名

  • df.columns:返回的是array格式。

  • list(df) :返回list格式,非常方便

  • df.keys()

查看某一列所有值
  • 查看某一列唯一值
dataframe['xxx'].unique()
  • 查看某一列所有值(例:查看"Cabin"这列的所有值)

    df['Cabin'].head(3)
    
    df.Cabin.head(3)
    
删除多余列
  • drop
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

参数解释:

  1. labels:单个标签或类似列表,要删除的索引或列标签。
  2. axis:{0或’index’,1或’columns’},默认0,是从索引(0或“ index”)还是从列(1或“ columns”)中删除标签。axis=0表示行,axis=1表示列
  3. index:单个标签或类似列表,指定轴的替代方法(labels, axis=0 is equivalent to index=labels
  4. columns:单标签或类似列表,指定轴的替代方法(labels, axis=1 is equivalent to columns=labels)
  5. level:int或级别名称,可选,对于MultiIndex,将从中删除标签的级别。
  6. inplace:布尔值,默认为False,如果为False,则返回副本。否则,执行就地操作并返回无。
  7. errors:{‘ignore’,‘raise’},默认为’raise’,如果’ignore’,则抑制错误,仅删除现有标签 。

如果想要完全的删除你的数据结构,使用inplace=True,因为使用inplace就将原数据覆盖了,

df.drop(['B', 'C'], axis=1)

#另一种表达
df.drop(columns=['B', 'C'])

#还可以这样表达
df.drop(labels=['B', 'C'], axis=1)
  • del

例:删除test中的a列

del test['a']
条件筛选
df[df.A==100]
df[df["Age"]<10]
df[(df.A==100)&(df.B=='a')]  
# 与
df[(df.A==100)|(df.B=='b')]
#或
重置索引

reset_index()

不想保留原来的index,使用参数 drop=True,默认 False。

标签索引
loc[]基于标签索引选取数据
.iloc[]基于整数索引选取数据
按升序按列排序
  • .sort_values()

使用.sort_values(),将单个参数传递给包含要作为排序依据的列的名称的方法。

DataFrame.sort_values(by=‘##’,axis=0,ascending=True, inplace=False, na_position=‘last’)

参数

by – 指定列名(axis=0或者’index’)或索引值(axis=1或者’columns’)

axis – 按行、按列,默认axis=0按指定列排序

ascending – 是否升序 默认为True

inplace – 是否修改原对象

kind – 排序算法 快排quicksort、归并mergesort、堆排序heapsort、稳定排序stable,默认快排

na_position – {‘first’, ‘last’} 设定缺失值的显示位置

ignore_index – 排序后是否重置索引

key – 排序之前使用的函数 (version 1.1.0 后才有该参数)

  • 其他排序方式
# 让行索引升序排序
frame.sort_index()

# 让列索引升序排序
frame.sort_index(axis=1)
                 
# 让列索引降序排序
frame.sort_index(axis=1, ascending=False)
                 
# 让任选两列数据同时降序排序
frame.sort_values(by=['a', 'c'], ascending=False)                
describe()函数
DataFrame.describe(percentiles=None, include=None, exclude=None)

参数

percentiles:赋值类似列表形式,可选
表示百分位数,介于0和1之间。默认值为 [.25,.5,.75],分别返回第25,第50和第75百分位数。 可自定义其它值,用法为df.describe(percentiles=[.xx])。
include:‘all’,类似于dtypes列表或None(默认值),可选
要包含在结果中的数据类型的白名单。对于Series不可用。以下是选项:
‘all’:输入的所有列都将包含在输出中。
类似于dtypes的列表:将结果限制为提供的数据类型。将结果限制为数字类型用法:numpy.number。要将其限制为对象列用法:numpy.object。字符串也可以以select_dtypes(例如df.describe(include=['O']))的方式使用。要选择分类类型,请使用'category'
无(默认):结果将包括所有数字列。
exclude:类似于dtypes列表或None(默认值),可选,
要从结果中除去的黑名单数据类型列表。Series不可用。以下是选项:
类似于dtypes的列表:从结果中排除提供的数据类型。排除数值类型用法:numpy.number。要排除对象列,使用numpy.object。字符串也可以以select_dtypes(例如df.describe(include=['O']))的方式使用。要排除分类类型,请使用'category'
无(默认):结果将不包含任何内容。

count : 样本数据大小
mean : 样本数据的平均值
std : 样本数据的标准差
min : 样本数据的最小值
25% : 样本数据25%的时候的值
50% : 样本数据50%的时候的值
75% : 样本数据75%的时候的值
max : 样本数据的最大值


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值