写点什么

Python 数据科学基础 -Pandas 介绍

发布于: 2021 年 05 月 22 日
Python数据科学基础-Pandas介绍

Pandas 介绍

Pandas

什么是 Pandas?


Pandas 的名称来自于面板数据(panel data)和 Python 数据分析(data analysis)。


Pandas 是一个强大的分析结构化数据的工具集,基于 NumPy 构建,提供了 高级数据结构 和 数据操作工具,它是使 Python 成为强大而高效的数据分析环境的重要因素之一。

1.一个强大的分析和操作大型结构化数据集所需的工具集

2.基础是 NumPy,提供了高性能矩阵的运算

3.提供了大量能够快速便捷地处理数据的函数和方法

4.应用于数据挖掘,数据分析

5.提供数据清洗功能

http://pandas.pydata.org

Series

1.Pandas 的数据结构

import pandas as pd

Pandas 有两个最主要也是最重要的数据结构: Series 和 DataFrame

2.Series

简要介绍

 1.Series 是一种类似于一维数组的 对象,由一组数据(各种 NumPy 数据类型)以及一组与之对应的索引(数据标签)组成。

 2..类似一维数组的对象

由数据和索引组成

索引(index)在左,数据(values)在右

索引是自动创建的

2.1. 通过 list 构建 Series

ser_obj = pd.Series(range(10))

示例代码:

# 通过 list 构建 Series

ser_obj = pd.Series(range(10, 20))

print(ser_obj.head(3))

 

print(ser_obj) #打印全部的 9 个值

 

print(type(ser_obj))

2.2 获取数据和索引

ser_obj.index 和 ser_obj.values

示例代码:

# 获取数据

print(ser_obj.values)

 

# 获取索引

print(ser_obj.index)

运行结果:

[10 11 12 13 14 15 16 17 18 19]

RangeIndex(start=0, stop=10, step=1)

3. 通过索引获取数据

ser_obj[idx]

示例代码:

#通过索引获取数据

print(ser_obj[0])

print(ser_obj[8])

运行结果:

10

18

4. 通过 dict 构建 Series

示例代码:

# 通过 dict 构建 Series

year_data = {2001: 17.8, 2002: 20.1, 2003: 16.5}

ser_obj2 = pd.Series(year_data)

print(ser_obj2.head())

print(ser_obj2.index) #Int64Index([2001, 2002, 2003], dtype='int64')

S4=pd.Series(dict(zip([1,2,3],["a","b","c"]))) print(S4)

 

6.name 属性

对象名:ser_obj.name

对象索引名:ser_obj.index.name

示例代码:

# name 属性

ser_obj2.name = 'temp'

ser_obj2.index.name = 'year'

print(ser_obj2.head())

Pandas-DataFrame

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

1.类似多维数组/表格数据 (如,excel, R 中的 data.frame)

2.每列数据可以是不同的类型

3 索引包括列索引和行索引

 

1. 通过 ndarray 构建 DataFrame

示例代码:

import numpy as np

 

# 通过 ndarray 构建 DataFrame

array = np.random.randn(5,4)

print(array)

 

df_obj = pd.DataFrame(array)

print(df_obj.head())

可以通过 columns 改变列名

可以通过 index 改变行的名字

2. 通过 dict 构建 DataFrame

示例代码:

# 通过 dict 构建 DataFrame

dict_data = {'A': 1,

             'B': pd.Timestamp('20170426'),

             'C': pd.Series(1, index=list(range(4)),dtype='float32'),

             'D': np.array([3] * 4,dtype='int32'),

             'E': ["Python","Java","C++","C"],

             'F': 'ITCast' }

#print dict_data

df_obj2 = pd.DataFrame(dict_data)

print(df_obj2)

3. 通过列索引获取列数据(Series 类型)

df_obj[col_idx] 或 df_obj.col_idx

示例代码:

# 通过列索引获取列数据

print(df_obj2['A'])

print(type(df_obj2['A']))

 

print(df_obj2.A)

4. 增加列数据

df_obj[new_col_idx] = data

类似 Python 的 dict 添加 key-value

示例代码:

# 增加列

df_obj2['G'] = df_obj2['D'] + 4

print(df_obj2.head())

运行结果:

     A          B    C  D       E       F  G

0  1.0 2017-01-02  1.0  3  Python  ITCast  7

1  1.0 2017-01-02  1.0  3    Java  ITCast  7

2  1.0 2017-01-02  1.0  3     C++  ITCast  7

3  1.0 2017-01-02  1.0  3       C  ITCast  7

5. 删除列

del df_obj[col_idx]

示例代码:

# 删除列

del(df_obj2['G'] )

print(df_obj2.head())

运行结果:

     A          B    C  D       E       F

0  1.0 2017-01-02  1.0  3  Python  ITCast

1  1.0 2017-01-02  1.0  3    Java  ITCast

2  1.0 2017-01-02  1.0  3     C++  ITCast

3  1.0 2017-01-02  1.0  3       C  ITCast

 

例子:obj2 使用的是上面的数据

ix 用法

方法:obj.ix[:,val]     #选择单个列

obj.ix[val1,val2] #同时选取行和列

print(df_obj2.ix['A']) #通过 ix 获取指定索引对应的行信息,ix 表示索引字段

print(df_obj2.ix[:,'A'])#选取所有航的指定'A'列的数据

发布于: 2021 年 05 月 22 日阅读数: 12
用户头像

专注于大数据技术研究 2020.11.10 加入

运营公众号:五分钟学大数据。大数据领域原创技术号,深入大数据技术

评论

发布
暂无评论
Python数据科学基础-Pandas介绍