loc 和 iloc基本选取操作

import pandas as pd

# loc 和 iloc基本选取操作
df = pd.DataFrame([['hu', '男', 23], ['chen', '女', 27], ['li', '男', 33]],
                  index=['1001', '1002', '1003'],
                  columns=['name', 'sex', 'age'])

# loc选取行列和相应的数据类型,loc注意要用于标签索引选取
#  一,选取单行,数据类型是Series
data = df.loc['1001']
# 选取单行单列,其实就是就是选取单元格的值,数据类型是单元格数据本身的数据类型
data = df.loc['1001', 'name']
# 选区单行多列,数据类型是Series
data = df.loc['1001', 'name':'age']
data = df.loc['1001', ['name', 'age']]
print(data)
print(type(data))

# 选取多行,数据类型是DataFrame
data = df.loc['1001':'1002']
data = df.loc[['1001', '1002']]
# 选取多行单列,数据类型是Series
data = df.loc['1001':'1002', 'name']
# 选取多行多列,数据类型是DataFrame
data = df.loc['1001':'1002', 'name':'age']

# 从上述的数据类型来看,当选取为单行或者单列时,pandas都默认为Serial类型

# 二,多种选取单元格的方式
data = df.loc['1001', 'name']
data = df.loc['1001']['name']
data = df.loc[:, 'name']['1001']

# 三,布尔选取,即使选取到只有单行或者单列,数据类型也都是dataframe,估计是pandas无法取预测实际能够选取多少行列
data = df.loc[df['name'] == 'hu']

# iloc选取行列,loc注意要用于下标选取
# iloc相对比较简单,就是下标选取
df = pd.DataFrame([['hu', '男', 23], ['chen', '女', 27], ['li', '男', 33]],
                  index=['1001', '1002', '1003'],
                  columns=['name', 'sex', 'age'])

data = df.iloc[0:1,0:2]
data = df.iloc[[0,2],[0,1]]

你可能感兴趣的:(python,loc,自学,进阶,大数据)