pandas入门——数据切片

数据切片

  • 创建数据集
# 导入pandas与numpy
import pandas as pd
import numpy as np
#创建一个dataframe 以时间序列为index 以abcdef为column
date1 = pd.date_range("20170813",periods=6)
df = pd.DataFrame(data=np.random.randint(3,9,size=(6,6)),index=date1,columns=list(["a","b","c","d","e","f"]))
print(df)

            a   b   c   d   e   f
2017-08-13  6   5   5   5   4   4
2017-08-14  3   3   4   3   4   8
2017-08-15  3   5   5   6   5   4
2017-08-16  5   3   5   3   3   4
2017-08-17  3   6   3   4   8   6
2017-08-18  7   6   5   7   4   6
  • 根据column选取
print(df["a"])
2017-08-13    6
2017-08-14    3
2017-08-15    3
2017-08-16    5
2017-08-17    3
2017-08-18    7
Freq: D, Name: a, dtype: int32
  • 根据index进行选取
print(df[0:1])

            a   b   c   d   e   f
2017-08-13  5   6   4   3   3   7
  • loc函数的使用
# 根据loc函数进行选取指定行
print(df.loc["2017-08-18",:])

# 使用loc函数选取所有行 并对列上的数据进行筛选
print(df.loc[:,("a","b","f")])

# 使用loc函数筛选行与列
print(df.loc["2017-08-14",["b","a","e"]])
a    7
b    6
c    5
d    7
e    4
f    6
Name: 2017-08-18 00:00:00, dtype: int32


            a   b   f
2017-08-13  5   6   7
2017-08-14  5   4   7
2017-08-15  3   6   4
2017-08-16  7   7   7
2017-08-17  7   5   7
2017-08-18  7   8   4

b    4
a    5
e    6
Name: 2017-08-14 00:00:00, dtype: int32
  • iloc函数的使用
# 使用iloc函数对行与列的位置进行选取

# 使用iloc函数选取第三行第三列的数据
print(df.iloc[3,3])

# 使用iloc函数选取第3行到第5行与第3列到第5列的数据
print(df.iloc[3:5,3:5])

# 使用iloc函数选取1、2、5行与2、4、5列数据
print(df.iloc[[1,2,5],[2,4,5]])
3

            d   e
2017-08-16  3   5
2017-08-17  4   6


            c   e   f
2017-08-14  8   6   7
2017-08-15  6   5   4
2017-08-18  5   3   4
  • ix函数
# 使用ix函数综合iloc与loc函数进行筛选  需要注意的是ix函数的第一个参数要使用索引位
print(df.ix[[0,2],[0,3]])
print(df.ix[[0,2],["a","e"]])

            a   d
2017-08-13  5   3
2017-08-15  3   5


            a   e
2017-08-13  5   3
2017-08-15  3   5
  • 使用boolean index参数进行切片
print(df[[True,True,False,True,True,False]])
            a   b   c   d   e   f
2017-08-13  6   5   5   5   4   4
2017-08-14  3   3   4   3   4   8
2017-08-16  5   3   5   3   3   4
2017-08-17  3   6   3   4   8   6
# boolean index结合loc函数使用
df.loc[df["a"]>5,df.loc["2017-08-15",:]>4]

            b   c   d   e
2017-08-13  5   5   5   4
2017-08-18  6   5   7   4

你可能感兴趣的:(pandas入门)