写点什么

python 数据分析 -pandas 基础(1)

作者:AIWeker
  • 2022-11-17
    福建
  • 本文字数:1686 字

    阅读完需:约 6 分钟

python数据分析-pandas基础(1)

1. 什么是 pandas?

pandas 是处理结构化(表格数据)最常用的工具,是 python 数据分析和数据处理的最成熟的库。pandas 最早是为了处理金融数据而开发的,开放到社区至今,已经广泛应用于各个领域中;pandas 以 numpy 为基础,而 pandas 是其他应用的数据基础,如 Scikit-learn 等。


如果你想;


  • 快速地进行数据的统计分析

  • 像数据库一样做多数据之间的关联

  • 快速地预处理数据(删除脏数据,空数据,数据转换,缺失值处理)

  • 像 Excel 一样的做多维的数据透视,数据分组汇总统计

  • 绘制统计图表

  • 进行数据挖掘

  • and so on


你需要掌握 pandas!



pip install pandas
复制代码


import pandas as pdfrom pandas import Series, DataFrame
复制代码

2. pandas 数据结构

我们先来看看 pandas 的三大数据结构:Series、DataFrame 和 Index

2.1 Series

Series 可以认为是一个一维数组, 但是和数组只有位置索引不同,Series 可以有不同的索引。


import pandas as pdimport numpy as npfrom pandas import Series, DataFrameseries = Series([12, 21, 31], index=['a', 'b', 'c'], dtype=np.int32, name="age")
# a 12# b 21# c 31# Name: age, dtype: int32
复制代码


从上可知,Series 组成:


  • 数据项

  • 索引 index, 默认为位置索引,即 0 到 N-1

  • 数据类型 dtype,不指定 pandas 会自动判断

  • 数据名称 name


Series 有哪些属性和操作


  • 获取属性:数据项 values 和索引 index 名称 name


    # array([12, 21, 31])    series.values
# Index(['a', 'b', 'c'], dtype='object') series.index
# age series.name
# dtype('int32') series.dtype
复制代码


  • 按照索引获取指定数据


    series[0], series['b']    # 12 21
复制代码


  • 查询数据和运算


    series[series > 20]    # b    21    # c    31    # Name: age, dtype: int32

s2 = series * 2 # a 24 # b 42 # c 62 # Name: age, dtype: int32
s3 = np.log1p(series)
# a 2.564949 # b 3.091042 # c 3.465736 # Name: age, dtype: float64
复制代码


总结下, Series 是按索引组织有序有类型的一维数组。

2.2 DataFrame

DataFrame 可以理解为一个或者多个 Series 组成的表格型的二维结构的数据。


data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],        'year': [2000, 2001, 2002, 2001, 2002, 2003],        'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}frame = pd.DataFrame(data)
frame.info()# <class 'pandas.core.frame.DataFrame'># RangeIndex: 6 entries, 0 to 5# Data columns (total 3 columns):# state 6 non-null object# year 6 non-null int64# pop 6 non-null float64# dtypes: float64(1), int64(1), object(1)# memory usage: 224.0+ bytes
复制代码



可以通过 info()函数清楚的了解 DataFrame 组成:索引 RangeIndex、数据列 Data columns 和数据类型。有属性来方便获取相应的值。


# RangeIndex(start=0, stop=6, step=1)frame.index
# Index(['state', 'year', 'pop'], dtype='object')frame.columns
复制代码


DataFrame 的每一行和每一列都是 Series, 可以按行和按列访问数据


frame['state']
# 0 Ohio# 1 Ohio# 2 Ohio# 3 Nevada# 4 Nevada# 5 Nevada# Name: state, dtype: object
frame.loc[0]# state Ohio# year 2000# pop 1.5# Name: 0, dtype: object
frame.loc[0][1]# 2000
复制代码


DataFrame 是非常重要的结构,更多的操作我们在后续陆续分享。

2. 3 Index

从 Series 和 DataFrame 中都可以看到 Index 的身影,可以说 Series 和 DataFrame 都是带索引的数据结构。


如果你对结构化数据库如 Oracle、Mysql 有了解化,索引是一个重要的高效访问的方式。对于 Series 和 DataFrame 来说同样也是。


Series 和 DataFrame 的索引和数据库索引一样,是允许重复值的。


比如设置 state 列为索引


frame.set_index('state')# year  pop# state    # Ohio  2000  1.5# Ohio  2001  1.7# Ohio  2002  3.6# Nevada  2001  2.4# Nevada  2002  2.9# Nevada  2003  3.2
复制代码



今天我们分享了关于 pandas 的基础结构:Series、DataFrame 和 Index,希望对你有帮助。

发布于: 刚刚阅读数: 3
用户头像

AIWeker

关注

InfoQ签约作者 / 公众号:人工智能微客 2019-11-21 加入

人工智能微客(aiweker)长期跟踪和分享人工智能前沿技术、应用、领域知识,不定期的发布相关产品和应用,欢迎关注和转发

评论

发布
暂无评论
python数据分析-pandas基础(1)_Python_AIWeker_InfoQ写作社区