pandas系列之行列同时选择1.普通索引+普通索引2.

不同于前面2篇讲述了按行选择和按列选择,这一篇讲述利用行列同选择的内容。所谓行列同时选择,就是按行筛选的结果和按列筛选的结果取交集,即为按行列同时选择的结果。

本文用到的Excel截图如下:

image-20210719230719339.png

先增加一个行索引

import pandas as pd
​
df = pd.read_excel(r'C:\Users\admin\Desktop\数据分析测试表.xlsx')
df.index = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
print(df)
复制代码

result:

  分类      书名    作者
A  历史      史记   司马迁
B  小说     红楼梦   曹雪芹
C  散文    文化苦旅   余秋雨
D  历史  明朝那些事儿  当年明月
E  漫画   半小时漫画   混子曰
F  随笔    培根随笔    培根
G  小说     红楼梦   曹雪芹
H  散文    文化苦旅   余秋雨
I  历史  明朝那些事儿  当年明月
J  历史    资治通鉴   司马光
K  散文    行者无疆   余秋雨
L  漫画   半小时唐诗   混子曰
复制代码

1.普通索引+普通索引

其实就是行名加列名进行数据筛选

df.index = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
print(df.loc[['A', 'D'], ['书名']])
复制代码

result:

       书名
​
A      史记
D  明朝那些事儿
复制代码

2.位置索引+位置索引

其实就是行的位置加列的位置进行数据筛选

df.index = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
print(df.loc[['A', 'D'], ['书名']])
复制代码
df.index = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
print(df.iloc[[0, 3], [1]])
复制代码

result:

       书名
​
A      史记
D  明朝那些事儿
复制代码

3.布尔索引+普通索引

是先对表进行布尔选择选择行,然后通过普通索引选择列

df.index = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
print(df[df['分类'] == '小说'][['书名', '作者']])
复制代码

result:

    书名   作者
​
B  红楼梦  曹雪芹
G  红楼梦  曹雪芹
复制代码

4.切片索引+切片索引

是通过同时传入行、列索引的位置区间进行数据选择

df.index = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
print(df.iloc[0:2, 1:3])
复制代码

result:

    书名   作者
​
A   史记  司马迁
B  红楼梦  曹雪芹
复制代码

和python切片一样,都是包含开头不包含结尾