import numpy as np
import pandas as pd
# 生成一个DataFrame
data = np.DataFrame(np.range(25), reshape(-1,5), index = ["A", "B", "C", "D", "E"], columns=list('qwert'))
print(data)
q w e r t
A 0 1 2 3 4
B 5 6 7 8 9
C 10 11 12 13 14
# data[0:x] ——> 提取1-(x-1)行数据
print(data[0:3])
q w e r t
A 0 1 2 3 4
B 5 6 7 8 9
C 10 11 12 13 14
# 求处该数据的行和列
print(len(data))
print(data.columns.size)
5
5
# 抓取行和列的索引名称
# 列索引
print(data.columns)
# 行索引
print(data.index)
Index(['q', 'w', 'e', 'r', 't'], dtype='object')
Index(['A', 'B', 'C', 'D', 'E'], dtype='object')
# 取某一列 用列索引
print(data["w"])
A 1
B 6
C 11
D 16
E 21
Name: w, dtype: int64
# 取某一行或者某几行
print(data[0:3])
q w e r t
C 10 11 12 13 14
D 15 16 17 18 19
E 20 21 22 23 24
# 用loc进行取片
# 当每列已有column name时,用 data [ 'w' ] 就能选取出一整列数据。如果你知道column names 和index,且两者都很好输入,可以选择 .loc
print(data.loc[["A","C"],["w","r"]])
w r
A 1 3
C 11 13
# 如果没有指定行索引可以用过自带索引 print(data.loc[1:5,["w","r"]])
# 用iloc进行取片
# 如果不想用复杂的索引进行取值,则可以直接用数字索引
# 如果取 x:y的连续值就不用[ ],而取某几行时需要用列表形式
print(data.iloc[1:3,1:3])
print(data.iloc[[1,3],1:5])
print(data.iloc[1,1])
w e
B 6 7
C 11 12
w e r t
B 6 7 8 9
D 16 17 18 19
6
# .ix 取片
允许混合使用下标和名称进行选取。 涵盖了前面所有的用法。但是有一点,就是data.ix [ [ ..1.. ], [..2..] ], 1框内必须统一,必须同时是下标或者索引,2框也一样。 1框是用来指定row,2框是指定column。
print(data.ix[1:3,2:5])
print(data.ix[["A", "D"],2:5])
e r t
B 7 8 9
C 12 13 14
e r t
A 2 3 4
D 17 18 19
本文结束…