0
点赞
收藏
分享

微信扫一扫

pandas(一)Series数据类型

_LEON_ 2023-02-21 阅读 107


数据维度

  • 一维数据​:
  • 列表[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


举报

相关推荐

0 条评论