《利用python进行数据分析》之pandas中索引、选取、过滤

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mr_muli/article/details/83999178
  • 《利用python进行数据分析》之pandas中索引、选取、过滤
# -*- coding: utf-8 -*-
"""
Created on Sun Nov 11 21:57:58 2018

@author: muli
"""

from pandas import Series,DataFrame
import pandas as pd
import numpy as np

# 索引、选取和过滤
# Series索引 (obj[...])的工作方式类似于NumPy数组的索引,只不过Series的索引值不只是整数。例:
obj=Series(np.arange(4.),index=['a','b','c','d'])
print(obj)

# 针对的是索引---原生态/自定义的索引
print(obj[1])
#print(obj[1,2])--- 错误--[]--只能 索引 一个值
print(obj['b'])
print(obj[obj<2])
print("---------------------")
# [[]]-- 支持 多个索引,里面的[]---相当于是 数组
print(obj[[1,3,0]])
print("--------%%%%---------")
# 利用标签的切片运算与普通的python切片运算不同,其末端是包含的(inclusive)
print(obj['b':'c'])
# 原生态的索引,则不支持---[)
print(obj[1:2])

print("===================================")
# 对DataFrame进行索引其实就是获取一个或多个列:
data=DataFrame(np.arange(16).reshape((4,4)),
               index=['Ohio','Colorado','Utah','New York'],
               columns=['one','two','three','four'])
print(data)
# 针对的是 列名
print(data['two'])
# 针对的是 列名的数组
print(data[['two','three']])
print("-------")
# 针对的是 索引
print(data[:2])
print("-----------")
# print(data[1])
# 报错:KeyError: 1
print("##############")
# 针对的是 索引
print(data.ix[[2]])
#      one  two  three  four
#Utah    8    9     10    11

print("------")
print(data.ix[2])
#one       8
#two       9
#three    10
#four     11
print("---------------------")
# 这种索引方式有几个特殊情况。首先通过切片或布尔数组进行选取行:
print(data[data['three']>5])
print("---------------------%%%%%--------")
print(data<5)
print("---------------------")
data[data<5]=0
print(data)
print("---------------============--------")

# 为了在DataFrame的行上进行标签索引,我们引入专门的索引字段ix
print(data.ix['Colorado',['two','three']])
# 针对的是 矩阵的索引
print(data.ix[[3,0,1]])
# 选取索引 + 列名
# 两种的顺序不能出错
print(data.ix[['Colorado','Utah'],[3,0,1]])
# 两者选取的都是 矩阵的 索引
# 则值为空
print(data.ix[[3,0,1],['Colorado','Utah']])
print("--------------")
# 利用标号做 切片,则为 闭合
print(data.ix[:'Utah','two'])

print("----------")
print(data.ix['Utah','two'])
print("---#########---------------")
# 支持原生态索引,前者为矩阵的行索引,后者为矩阵的列名
print(data.ix[2,1])  
print("----------------------")
print(data)
# 注意,第2个参数针对的是 列名
print(data.ix[data.three>5,:3])
print("---#########-------------%%%%%%%%%%%%--")
# 选取的是某一列
print(data.ix[:,2])
print("--------------")
print(data.ix[0,:])
print(data.ix[[0]])
print("---#########-------------*************--")
print(data)
print(data['one'])
print(data[['one','two']])
print("************")
print(data.ix[1])
print(data.ix[[1]])

猜你喜欢

转载自blog.csdn.net/mr_muli/article/details/83999178