pandas 学习笔记

  • pandas中最主要的两个数据结构:SeriesDataFrame

Series

  • 一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。
import pandas as  pd
obj = pd.Series([4, 7, -5, 3])
obj
"""
输出
0    4
1    7
2   -5
3    3
dtype: int64
"""
  • Series 的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引,会自动创建0到N-1的整数型索引。可以通过Series 的value和index属性获取其数组表示形式和索引对象
obj.values
"""
输出
array([ 4,  7, -5,  3], dtype=int64)
"""
obj.index
"""
输出
RangeIndex(start=0, stop=4, step=1)
"""
  • 创建带标记索引的 Series
obj2 = pd.Series([4, 7], index=['d', 'e'])
obj2
"""
输出
d    4
e    7
dtype: int64
"""
  • 可以通过索引的方式选取Series中的单个或一组值
obj2['e']
"""
输出
7
"""
obj2[['e','d']]
"""
输出
e    7
d    4
dtype: int64
"""
  • 通过字典创建 Series
sdata = {'ohio': 35000, 'tesas': 71000}
obj3 = pd.Series(sdata)
obj3
"""
输出
ohio     35000
tesas    71000
dtype: int64
"""
  • 如果只传入字典 , Series 中索引就是原字典的键(有序排列)。可以传入排序号的字典键以改变序列。
states = ['califor', 'tesas', 'ohio']
obj4 = pd.Series(sdata, index=states)
obj4
"""
输出
califor        NaN
tesas      71000.0
ohio       35000.0
dtype: float64
"""

DataFrame

DataFrame 是一个表格型的数据结构,它包含有一组有序的列,每列可以是不同的值类型。
DataFrame 既有行索引也有列索引。DataFrame 中的数据是以一个或多个 二维块存放的。

  • 传入一个由等长列表或NumPy数组组成的字典,结果DataFrame会自动加上索引
data = {'state': ['ohio','ohio','nevada','nevada'],
        'year': [2000,2001,2001,2002],
        'pop': [1.5,1.7,2.4,2.9]}
frame = pd.DataFrame(data)
frame

输出
pandas 学习笔记_第1张图片

  • 指定序列,列在数据中不存存在将会在结果中产生缺失值
frame2 = pd.DataFrame(data, columns=['year','state','pop', 'debt'], index=['one','two','three','four'])
frame2

输出
pandas 学习笔记_第2张图片

  • 获取列,返回的是 Series 类型的序列
frame2['state']

输出
pandas 学习笔记_第3张图片

  • 获取行,返回的是 Series 类型的序列
frame2.loc['one']

输出
pandas 学习笔记_第4张图片

  • 将列表或数组赋值给某个列时,长度必须跟DataFrame的长度匹配。如果赋值的是一个Series,就会精确匹配DataFrame的索引
val = pd.Series([-1.2,-1.5], index=['two','four'])
frame2['debt'] = val
frame2

输出
pandas 学习笔记_第5张图片

  • 传入嵌套字典构造DataFrame,外层字典的键作为列,内层键则作为索引。
pop = {'ohio':{'2000':1.5,'2001':1.7}, 'nevada':{'2001':2.4}}
frame3 = pd.DataFrame(pop)
frame3

输出
在这里插入图片描述

  • 重新索引,将创建一个符合新索引的对象,ffill 实现前向填充。
obj3 = pd.Series(['blue', 'purple', 'yellow'], index=[0, 2, 4])
obj3
obj3.reindex(range(6), method='ffill')

pandas 学习笔记_第6张图片

你可能感兴趣的:(python,python,pandas)