import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
Index
- 索引对象负责管理轴标签和元数据
- 构建S和DF 的时候,数组和其他序列的标签会被转换成Index
- Index对象是不可变的,用户不能修改
- 允许有重复的标签
image.png
frame3.index.name = 'year'
frame3.columns.name = 'state'
frame3
image.png
frame3.values
image.png
obj = pd.Series(range(3), index=['a', 'b', 'c'])
index = obj.index
index
Index(['a', 'b', 'c'], dtype='object')
labels = pd.Index(np.arange(3))
labels
Int64Index([0, 1, 2], dtype='int64')
obj2 = pd.Series([1.5, -2.5, 0], index=labels)
obj2
0 1.5
1 -2.5
2 0.0
dtype: float64
>>frame3.columns
Index(['Nevada', 'Ohio'], dtype='object', name='state')
reindex
- pandas对象的方法
- 创建一个新对象,符合新的索引
obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c'])
obj
d 4.5
b 7.2
a -5.3
c 3.6
dtype: float64
obj2 = obj.reindex(['a', 'b', 'c', 'd'])
obj2
a -5.3
b 7.2
c 3.6
d 4.5
dtype: float64
frame = pd.DataFrame(np.arange(9).reshape((3, 3)),
index = ['a', 'b', 'c'],
columns=['Ohio', 'Texas', 'California'])
frame
image.png
image.png
data = pd.DataFrame(np.arange(16).reshape((4, 4)),
index=['Ohio', 'Colorado', 'Utah', 'New York'],
columns=['one', 'two', 'three', 'four'])
data
image.png
data.drop(['Colorado', 'Utah'])
image.png
data.drop("two", axis=1)
data.drop(['two', 'three'], axis='columns')
image.png
image.png
obj[obj < 2]
obj['c':'b']
obj['b':'c'] = 5
obj
image.png
data = pd.DataFrame(np.arange(16).reshape((4, 4)),
index=['Ohio', 'Colorado', 'Utah', 'New York'],
columns=['one', 'two', 'three', 'four'])
data
one two three four
Ohio 0 1 2 3
Colorado 4 5 6 7
Utah 8 9 10 11
New York 12 13 14 15
print(data["two"])
data[["two", "three"]]
image.png
loc和iloc
image.png
data.loc["Colorado", ["two", "three"]]
image.png
data.iloc[2, [3,0,1]]
four 11
one 8
two 9
Name: Utah, dtype: int32
data.loc[:'Utah', 'two']
Ohio 0
Colorado 5
Utah 9
Name: two, dtype: int32
data.loc[:'Utah', ['two', 'three']]
image.png
data.iloc[:, :3][data.three > 5]
data.iloc[:, :3]
ser = pd.Series(np.arange(3.))
ser
image.png