Pandas系列-DataFrame和Series数据结构

  1. Series
  2. DataFrame
  3. 从DataFrame中查询出Series
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
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
stateyearpop
0Ohio20001.5
1Ohio20011.7
2Ohio20023.6
3Nevada20012.4
4Nevada20022.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
stateyearpop
0Ohio20001.5
1Ohio20011.7
2Ohio20023.6
3Nevada20012.4
4Nevada20022.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']]
yearpop
020001.5
120011.7
220023.6
320012.4
420022.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]
stateyearpop
1Ohio20011.7
2Ohio20023.6
3Nevada20012.4
type(df.loc[1:3])
pandas.core.frame.DataFrame

本文的代码地址:https://github.com/peiss/ant-learn-pandas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁学Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值