Pandas 三:数据结构

import pandas as pd
import numpy as np

1. Series

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

1.1 仅有数据列表即可产生最简单的Series
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)

1.2 创建一个具有标签索引的Series
s2 = pd.Series([1, 'a', 5.2, 7], index=['d','b','a','c'])

结果:

s2
7
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

结果:

state	year	pop
0	Ohio	2000	1.5
1	Ohio	2001	1.7
2	Ohio	2002	3.6
3	Nevada	2001	2.4
4	Nevada	2002	2.9
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

结果:

state	year	pop
0	Ohio	2000	1.5
1	Ohio	2001	1.7
2	Ohio	2002	3.6
3	Nevada	2001	2.4
4	Nevada	2002	2.9
3.1 查询一列,结果是一个pd.Series
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']]

结果:

year	pop
0	2000	1.5
1	2001	1.7
2	2002	3.6
3	2001	2.4
4	2002	2.9
type(df[['year', 'pop']])

pandas.core.frame.DataFrame

3.3 查询一行,结果是一个pd.Series
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
df.loc[1:3]

结果:

state	year	pop
1	Ohio	2001	1.7
2	Ohio	2002	3.6
3	Nevada	2001	2.4
type(df.loc[1:3])

pandas.core.frame.DataFrame

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值