2.pandas的数据结构

对于文件来说,读取只是最初级的要求,那我们要对文件进行数据分析,首先就应该要知道,pandas会将我们熟悉的文件转换成了什么形式的数据结构,以便于后续的操作

数据结构

pandas对文件一共有两种数据结构的划分,第一种是二维的DataFrame,第二种是一维的Series

简单的来说就是,你看到的表,就是DataFrame,而构成表的每一行或者每一列都是Series

Series

列表创建Series

仅仅有数据列表就可以产生最简单的Series

l = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
s1 = pd.Series(l)
print(s1)
0    a
1    b
2    c
3    d
4    e
5    f
6    g
dtype: object

# 左侧为索引,右侧为数据

根据上篇文章我们可以获取这个Series的索引和数据

print(s1.index)
print(s1.values)
RangeIndex(start=0, stop=7, step=1)
['a' 'b' 'c' 'd' 'e' 'f' 'g']

其实不光可以用数字来进行索引,也可以自定义索引

s1 = pd.Series(l,index=['q','w','e','r','t','y','u'])
q    a
w    b
e    c
r    d
t    e
y    f
u    g
dtype: object

字典创建Series

d = {
    'a':1,
    'b':2,
    'c':3
}
s1 = pd.Series(d)
print(s1)
a    1
b    2
c    3
dtype: int64

字典创建的就会将字典的键默认当做索引

查询数据

跟字典其实是差不多的意思,可以根据索引来查

d = {
    'a':1,
    'b':2,
    'c':3
}
s1 = pd.Series(d)
print(s1['b'])
2

也可以查询一堆数据

d = {
    'a':1,
    'b':2,
    'c':3
}
s1 = pd.Series(d)
print(s1[['b','c']])
b    2
c    3
dtype: int64

DataFrame

既然这是个二维的数据结构,也就意味着,它不止有列索引,同时还应该有行索引

根据多个字典创建DataFrame

d = {
    'state':['s1','s2','s3'],
    'year':['2020','2019','2018'],
    'inp':['a','b','c']
}
s1 = pd.DataFrame(d)
print(s1)
  state  year inp
0    s1  2020   a
1    s2  2019   b
2    s3  2018   c

可以通过上篇文章快速的获取列索引和行索引

d = {
    'state':['s1','s2','s3'],
    'year':['2020','2019','2018'],
    'inp':['a','b','c']
}
s1 = pd.DataFrame(d)
print(s1.index)
print(s1.columns)
RangeIndex(start=0, stop=3, step=1)
Index(['state', 'year', 'inp'], dtype='object')
原文地址:https://www.cnblogs.com/jevious/p/13370078.html