03. Pandas数据结构

[toc]

03. Pandas数据结构

  1. Series
  2. DataFrame
  3. 从DataFrame中查询出Series

1. Series

Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一组与之相关的数据标签(即索引)组成。

1.1 仅有数据列表即可产生最简单的Series

import pandas as pd import numpy as np s1 = pd.Series([1,'a',5.2,7]) # 左侧为索引,右侧是数据 s1 0 1 1 a 2 5.2 3 7 dtype: object # 获取索引 s1.index RangeIndex(start=0, stop=4, step=1) # 获取数据 s1.values array([1, 'a', 5.2, 7], dtype=object) [x for x in s1.items()] [(0, 1), (1, 'a'), (2, 5.2), (3, 7)]

1.2 创建一个具有标签索引的Series

s2 = pd.Series([1, 'a', 5.2, 7], index=['d','b','a','c']) s2 d 1 b a a 5.2 c 7 dtype: object s2.index Index(['d', 'b', 'a', 'c'], dtype='object')

1.3 使用Python字典创建Series

sdata={'Ohio':35000,'Texas':72000,'Oregon':16000,'Utah':5000} s3=pd.Series(sdata) s3 Ohio 35000 Texas 72000 Oregon 16000 Utah 5000 dtype: int64

1.4 根据标签索引查询数据

类似Python的字典dict

s2 d 1 b a a 5.2 c 7 dtype: object # 方括号,里面是一个标签索引 s2['a'] 5.2 type(s2['a']) float # 里面是一个列表 s2[['b','a']] b a a 5.2 dtype: object type(s2[['b','a']]) pandas.core.series.Series

2. DataFrame

DataFrame是一个表格型的数据结构

  • 每列可以是不同的值类型(数值、字符串、布尔值等)
  • 既有行索引index,也有列索引columns
  • 可以被看做由Series组成的字典

创建dataframe最常用的方法,见02节读取纯文本文件、excel、mysql数据库

2.1 根据多个字典序列创建dataframe

data={ 'state':['Ohio','Ohio','Ohio','Nevada','Nevada'], 'year':[2000,2001,2002,2001,2002], 'pop':[1.5,1.7,3.6,2.4,2.9] } df = pd.DataFrame(data) df

df.dtypes state object year int64 pop float64 dtype: object # 列索引 df.columns Index(['state', 'year', 'pop'], dtype='object') # 行索引 df.index RangeIndex(start=0, stop=5, step=1)

3. 从DataFrame中查询出Series

  • 如果只查询一行、一列,返回的是pd.Series
  • 如果查询多行、多列,返回的是pd.DataFrame
df df.values #二维数组 array([['Ohio', 2000, 1.5], ['Ohio', 2001, 1.7], ['Ohio', 2002, 3.6], ['Nevada', 2001, 2.4], ['Nevada', 2002, 2.9]], dtype=object)

3.1 查询一列,结果是一个pd.Series

# 方括号,列索引 df['year'] # 等价于 df.year 0 2000 1 2001 2 2002 3 2001 4 2002 Name: year, dtype: int64 type(df['year']) pandas.core.series.Series

3.2 查询多列,结果是一个pd.DataFrame

# 里面是一个列表 多个列 df[['year', 'pop']]

type(df[['year', 'pop']]) pandas.core.frame.DataFrame

3.3 查询一行,结果是一个pd.Series

# 一行 loc=loction位置 df.loc[1] state Ohio year 2001 pop 1.7 Name: 1, dtype: object type(df.loc[1]) pandas.core.series.Series

3.4 查询多行,结果是一个pd.DataFrame

# 像list的切片 df.loc[1:3]

type(df.loc[1:3]) pandas.core.frame.DataFrame

本文使用 文章同步助手 同步

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容