初探pandas——索引和查询数据

Posted lrainner

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初探pandas——索引和查询数据相关的知识,希望对你有一定的参考价值。

索引

import pandas as pd
ser=pd.Series(range(0,10,2))

print(ser)
0    0
1    2
2    4
3    6
4    8
dtype: int64

通过索引值或索引标签获取数据

通过index查看索引值

print(ser.index)
RangeIndex(start=0, stop=5, step=1)

自定义索引值

ser.index=[‘a‘,‘b‘,‘c‘,‘d‘,‘f‘]
print(ser)
a    0
b    2
c    4
d    6
f    8
dtype: int64

通过索引值和索引标签获取数据

print(‘ser[3]:‘,ser[3])
print(‘ser[d]:‘,ser[‘d‘])
print(‘ser[[1,2,3]]:‘,ser[[1,2,3]])
print("ser[[‘a‘,‘b‘,‘c‘]]:",ser[[‘a‘,‘b‘,‘c‘]])
print(‘ser[3:]:‘,ser[3:])
ser[3]: 6
ser[d]: 6
ser[[1,2,3]]: b    2
c    4
d    6
dtype: int64
ser[[‘a‘,‘b‘,‘c‘]]: a    0
b    2
c    4
dtype: int64
ser[3:]: d    6
f    8
dtype: int64

自动化对齐

如果对两个序列进行运算,索引就会将元素对齐进行运算

a=pd.Series([1,2,3,4,5,6],index=[‘a‘,‘b‘,‘c‘,‘d‘,‘f‘,‘g‘])
print(a)

b=pd.Series([4,5,6,7,8,9],index=[‘g‘,‘f‘,‘d‘,‘c‘,‘b‘,‘a‘])
print(b)

print(a+b)
a    1
b    2
c    3
d    4
f    5
g    6
dtype: int64
g    4
f    5
d    6
c    7
b    8
a    9
dtype: int64
a    10
b    10
c    10
d    10
f    10
g    10
dtype: int64

利用pandas查询数据

import pandas as pd

stu_dic={
    ‘name‘:[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘],
    ‘age‘:[18,15,45,56,89,78,45,12],
    ‘sex‘:[‘f‘,‘m‘,‘m‘,‘f‘,‘f‘,‘f‘,‘m‘,‘m‘]
}

student=pd.DataFrame(stu_dic)
print(student)
  name  age sex
0    a   18   f
1    b   15   m
2    c   45   m
3    d   56   f
4    e   89   f
5    f   78   f
6    g   45   m
7    h   12   m

查询数据前5行或后5行

# 查询前5行
student.head()

# 查询后5行
student.tail()
# 查询前5行
print(student.head())

print(‘* ‘*10)

#查询后5行
print(student.tail())
  name  age sex
0    a   18   f
1    b   15   m
2    c   45   m
3    d   56   f
4    e   89   f
* * * * * * * * * * 
  name  age sex
3    d   56   f
4    e   89   f
5    f   78   f
6    g   45   m
7    h   12   m

查询指定的行

student.loc[[1,2,3]]

loc标签索引函数必须是中括号

# 查询第1,2,3行
print(student.loc[[1,2,3]])
  name  age sex
1    b   15   m
2    c   45   m
3    d   56   f

查询指定的列

student[[‘name‘,‘age‘]]

如果查询多个列,必须使用双重中括号

# 查询name,age列
print(student[[‘name‘,‘age‘]])
  name  age
0    a   18
1    b   15
2    c   45
3    d   56
4    e   89
5    f   78
6    g   45
7    h   12

查询18岁以上女生信息

student[(student[‘sex‘]==‘f‘)&(student[‘age‘]>=18)]
print(student[(student[‘sex‘]==‘f‘)&(student[‘age‘]>=18)])
  name  age sex
0    a   18   f
3    d   56   f
4    e   89   f
5    f   78   f

以上是关于初探pandas——索引和查询数据的主要内容,如果未能解决你的问题,请参考以下文章

数据处理基石:Pandas数据初探索

Lucene初探之数据格式详情

Lucene初探之数据格式详情

Pandas基础学习与Spark Python初探

Lucene初探之索引文件的基本类型与基本规则

如何将数据和索引设置为 pandas 数据框