Pandas系列教程(2)Pandas数据结构

Pandas数据结构

DataFrame: 二维数组,整个表格,多行多列

Series: 一维数据,一行或一列

 

1、Series

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

import pandas as pd
import numpy as np

# ================= 1 仅有数据列表即可产生最简单的Series =================
s1 = pd.Series([1, 'a', 5.2, 7])
# 左侧为索引,右侧是数据
print(s1)
# 获取索引
print(s1.index)
# 获取数据
print(s1.values)
print('*' * 50)

# ================= 2 创建一个具有标签索引的Series =================
s2 = pd.Series([1, 'a', 5.2, 7], index=['d', 'b', 'a', 'c'])
# 左侧为索引,右侧是数据
print(s2)
# 获取索引
print(s2.index)
# 获取数据
print(s2.values)
print('*' * 50)

# ================= 3 使用Python字典创建Series =================
data = {"Ohio": 35000, "Texas": 72000, "Oregon": 16000, "Utah": 5000}
s3 = pd.Series(data)
# 左侧为索引,右侧是数据
print(s3)
# 获取索引
print(s3.index)
# 获取数据
print(s3.values)

# ================= 4 根据标签索引查询数据 =================
s4 = pd.Series([1, 'a', 5.2, 7], index=['d', 'b', 'a', 'c'])
# 左侧为索引,右侧是数据
print(s4)
# 获取index为a的元素
print(s4['a'])
print(type(s4['a']))
# 获取指定的多个值
print(s4[['b', 'a']])
print(type(s4[['b', 'a']]))

2、DataFrame

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

  • 每列可以是不同的值类型(数值,字符串,布尔值等)

  • 既有行索引index, 也有columns

  • 可以被看做由Series组成的字典

创建dataframe最常用的方法,见Panda数据读取

import pandas as pd

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

# 获取每列的数据类型
print(df.dtypes)

# 获取每列的键名
print(df.columns)

# 获取索引
print(df.index)

3、从DataFrame中查询出Series

  • 如果只查询出一行,一列,返回的是pd.Series

  • 如果查询多列,多行,发挥的是pd.DataFrame

import pandas as pd

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

# 查询一列,结果是一个pd.Series
print(df['year'], type(df['year']), '
')

# 查询多列,结果是一个pd.DataFrame
print(df[['year', 'pop']], type(df[['year', 'pop']]), '
')

# 查询一行,结果是一个pd.Series
print(df.loc[1], type(df.loc[1]), '
')

# 查询多行,结果是一个pd.DataFrame
print(df.loc[1:3], type(df.loc[1:3]))
原文地址:https://www.cnblogs.com/xingxingnbsp/p/13851616.html