import pandas as pd
data = pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})
提取列
单列
data['a']
多列
data[['a', 'b']]
使用 .loc或者 .iloc 提取
第一个参数是行,第二个参数为列
.loc为按标签提取, .iloc为按位置索引提取
data.loc[:, 'a'] # 等价于data.iloc[:, 0]
data.loc[:, ['a', 'b']] # 等价于data.iloc[:, [0, 1]]
提取行
提取行的时候,一般只能使用 .loc 和 .iloc 来提取,个人是比较喜欢使用 .loc
提取某些行
# 提取一行
data.loc[1] # 标签索引
Out[35]:
a 2
b 5
c 8
Name: 1, dtype: int64
data.iloc[1] # 位置索引
Out[36]:
a 2
b 5
c 8
# 提取多行
data.loc[:1]
Out[37]:
a b c
0 1 4 7
1 2 5 8
data.loc[[0,1]]
Out[38]:
a b c
0 1 4 7
1 2 5 8
行列一起使用
data.loc[0:1, 'b']
Out[40]:
0 4
1 5
按匹配条件提取多行
这种方法是按照某些列符合某种条件,然后提取多行
单条件
多条件
# 这两种方法得到的结果是一致的,推荐使用第二种
# 与 条件 不能使用 and
data[(data['a']<=2) & (data['b']>=5)]
data.loc[(data['a']<=2) & (data['b']>=5)]
# 或 条件 不能使用 or
data[(data['a']<=2) | (data['b']>=5)]
data.loc[(data['a']<=2) | (data['b']>=5)]