python库--pandas--DataFrame--数据切片/筛选/取值

≡放荡痞女 提交于 2020-01-19 22:54:58

1. 源数据

az = 'abcdefghijklmnopqrstuvwxyz'
data = pd.DataFrame([[j for j in range(i, 10 + i)] for i in range(20)], columns=list(az.upper()[:10]), index=[i+j for i in az for j in az][:20])

在这里插入图片描述

2. 切片

2.1 行切片

# 取前10行
data.head(10)
data.iloc[:10]
# 取第3-15行
data.iloc[2:15]
# 取后10行
data.tail(10)
data.iloc[-10:]
# 取奇数行
data.iloc[::2]
# 取偶数行
data.iloc[1::2]
# 取索引为af及其之后的行
data.loc['af':]
# 取索引为af及其之后的奇数行(af为第1行)
data.loc['af'::2]
# 取索引af及ai之间的行(包含边界)
data.loc['af':'ai']

2.2 列切片

# 取前5列
data.iloc[:, :5]
# 取第3-5列
data.iloc[:, 2:5]
# 取后5列
data.iloc[:, -5:]
# 取奇数列
data.iloc[:, ::2]
# 取偶数列
data.iloc[:, 1::2]
# 取索引为C及其之后的列
data.loc[:, 'C':]
# 取索引为C及其之后的奇数列(af为第1行)
data.loc[:, 'C'::2]
# 取索引C及F之间的列(包含边界)
data.loc[:, 'C':'F']

1.3 行列组合切片

# 取前10行的前5列
data.iloc[:10, :5]
...

2. 取固定行/列/值及按条件筛选

# 取索引为 aa, ae, af 的行
data.loc[['aa', 'ae', 'af']]
# 取 A, C, F 列
data[['A', 'C", 'F]]
data.loc[:, ['A', 'C', 'F']]
# 取 C 列 索引为 ae 的值
data['C']['ae']
data.loc['ae', 'C']
data.at['ae', 'C']
# 取C列值大于10的数据
data[data['C'] > 10]
data.loc[data.C > 10]
# 取ak行值大于15的列
data.loc[:, data.loc['ak'] > 15]
# 取D列值在[7, 9, 13]中的数据
data[data['D'].isin([7, 9, 13])]
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!