数据维度
一维数据
:- 列表[1, 3, 3, 4, 5, 6]
- 集合{1, 3, 3, 4, 5, 6}
二维数据
:- 列表类型:[[1, 3, 3, 4, 5, 6],[1, 3, 3, 4, 5, 6]]
高维数据:
- 字典类型
Series一维数组
Series
由一组数据与数据的索引组成的数据
aa = pd.Series([1, 2, 3, 4, 5])
0 1
1 2
2 3
3 4
4 5
- 添加索引
index
=
pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
a 1
b 2
c 3
d 4
e 5
pd.Series(2, index=['a', 'b', 'c'])
a 2
b 2
c 2
字典键是索引, 值还是值
pd.Series({'a': 7, 'b': 8, 'c': 9})
a 7
b 8
c 9
pd.Series({'a': 7, 'b': 8, 'c': 9}, index=['c', 'a', 'd', 'b'])
c 9.0
a 7.0
d NaN
b 8.0
Series
基本操作
- index
.index
获取索引 - values
.values
获取数据
df = pd.Series({'a': 7, 'b': 8, 'c': 9}, index=['c', 'a', 'd', 'b'])
输出尽所有index
print(df.index)
Index(['c', 'a', 'd', 'b'], dtype='object')
根据索引取值(单个) df[索引] 自动索引、自定义索引均可
df.get(索引)亦可
print(df['b'])
print(df[3])
print(df.get('b'))
8
根据索引取值(多个) df[[索引1, 索引1]] 自动索引、自定义索引均可
print(df[['a', 'd']])
print(df[[1, 2]])
a 7.0
d NaN
切片操作
可通过自定义索引列表进行切片
可通过自动义索引列表进行切片,如存在自定义索引,则一同被切
print(df[:2])
c 9.0
a 7.0
中位数
df.median()
9.0
大于中位数的
print(df > df.median())
判断某个索引是否是索引(只对自定义索引生效)
is_index = 'd' in df
print(is_index)
True
Series相加操作
series是基于索引的运算
索引值相同的进行运算, 其它为空(两个都有的索引进行相加),
运算中会自动对齐不同索引的维度的数据
df1 = pd.Series([1, 2, 3, 4], index=['a', 'c', 'd', 'b'])
df2 = pd.Series([7, 8, 9], index=['d', 'b', 'e'])
print(df1 + df2)
a NaN
b 12.0
c NaN
d 10.0
e NaN
series的name属性
series的name属性
serie对象与索引可有名字, 存储在.name中
df1.name = '对象名'
df1.index.name = '索引列'
print(df1)
索引列
d 7
b 8
e 9
Name: 对象名, dtype: int64
series的修改
serie对象随时修改,即开即食
修改单个值
df1['d'] = 20
print(df1)
d 20
b 8
e 9
修改多个值
df1['d', 'b'] = 20
print(df1)
d 20
b 20
e 9