Series
Series是一个带标签的一维数组
Series的创建方式
- 列表创建
b = pd.Series([9, 8, 7, 6], index = ['a', 'b','c', 'd'])
- 标量创建
s = pd.Series(25, index = ['a', 'b', 'c']) #不能省略index
- 从字典创建
d = pd.Series({'a' : 9, 'b' : 8, 'c' : 7})
# 改变形状
d = pd.Series({'a' : 9, 'b' : 8, 'c' : 7}, index = ['c', 'a', 'b', 'd'])
- 利用Numpy中的Array
n = pd.Series(np.arange(5))
索引方式
- 自动索引和自定义索引并存,但是不能混合使用,同样直接访问丢失维度,变成一个数
b = pd.Series([9, 8, 7, 6], index = ['a', 'b','c', 'd'])
print(b[1])
print(b['b'])
Result
8
8
- 切片
b = pd.Series([9, 8, 7, 6], index = ['a', 'b','c', 'd'])
print(b[:3])
Result
a 9
b 8
c 7
dtype: int64
操作方式
- 可以使用Numpy中的函数
b = pd.Series([9, 8, 7, 6], index = ['a', 'b','c', 'd'])
np.exp(b)
Result
a 8103.083928
b 2980.957987
c 1096.633158
d 403.428793
dtype: float64
- 基本运算操作是对其索引值相同的值进行运算
a = pd.Series([1, 2, 3], index = ['b', 'c', 'd'])
b = pd.Series([9, 8, 7, 6], index = ['a', 'b','c', 'd'])
a + b
Result
a NaN
b 9.0
c 9.0
d 9.0
dtype: float64
DataFrame
DataFrame 由共用相同索引的一组列组成(表格类型)
既有行索引也有列索引
创建方式
- 由二维的array来创建
d = pd.DataFrame(np.arange(10).reshape(2, 5))
Result
- 由一维array对象字典创建
dt = {'one': pd.Series([1, 2, 3], index = ['a', 'b', 'c']),
'two': pd.Series([9, 8, 7, 6], index = ['a', 'b', 'c', 'd'])}
d = pd.DataFrame(dt)
Result
- 从列表类型字典创建
dl = {'one': [1, 2, 3, 4], 'two':[9, 8, 7, 6]}
d = pd.DataFrame(dl, index = ['a', 'b', 'c', 'd'])
Result
访问方式
先创建一个表格
dl = {'城市': ['北京', '上海', '广州', '沈阳', '深圳'],
'环比': [101.5, 101.2, 101.3, 102.0, 100.1],
'同比': [120.7, 127.3, 119.4, 140.9, 101.4],
'定基': [121.4, 127.8, 120.0, 145.5, 101.6]}
b = pd.DataFrame(dl, index = ['c1', 'c2', 'c3', 'c4', 'c5'])
print(b['同比'])
print()
# 访问行
print(b.loc['c2'])
print()
print(b['同比']['c2'])
Result
c1 120.7
c2 127.3
c3 119.4
c4 140.9
c5 101.4
Name: 同比, dtype: float64
城市 上海
环比 101.2
同比 127.3
定基 127.8
Name: c2, dtype: object
127.3
重新索引,改变行列的排列方式
dl = {'城市': ['北京', '上海', '广州', '沈阳', '深圳'],
'环比': [101.5, 101.2, 101.3, 102.0, 100.1],
'同比': [120.7, 127.3, 119.4, 140.9, 101.4],
'定基': [121.4, 127.8, 120.0, 145.5, 101.6]}
b = pd.DataFrame(dl, index = ['c1', 'c2', 'c3', 'c4', 'c5'])
b.reindex(columns = ['城市', '定基', '同比', '环比'])
b.reindex(index = ['c1', 'c2', 'c5', 'c3'])
Result