选择方式
- 选择行
- 选择列
- 选择区域
- 筛选(条件选择)
选择行
- 形式
- data[i : j]
- 切片:i, j 是数字,代表所取的行号,范围为[i, j)
- 索引:i, j是行索引名,范围为[i, j]
- data[i : j]
- 错误
- data[k] 这样获取行数据都会报错,不管k是index值,还是代表某一行的行号
切片
In[60]:mydata
Out[60]:
a b c d e
a 0.67194 0.241800 0.830750 0.42741 1
b 0.20619 0.233210 0.810040 0.98691 1
c 0.51583 0.055814 0.922740 0.75797 1
d 0.70893 0.108360 0.339510 0.77058 1
In[61]:data[:1]
Out[61]:
a b c d e
a 0.67194 0.241800 0.830750 0.42741 1
In[62]:data[1]
Out[62]:
Error
In[63]:data['i']
Out[62]:
Error
索引
In[11]: data['a':'c']
Out[11]:
a b c d e
a 0.67194 0.241800 0.830750 0.42741 1
b 0.20619 0.233210 0.810040 0.98691 1
c 0.51583 0.055814 0.922740 0.75797 1
选择列
- 列名
- data.列名
- data[列名]
- 错误
- data[‘列名1’, ‘列名2’]
- djidf[‘列名1’ : ‘列名2’]
In[14]: data['a']
Out[14]:
a 0.67194
b 0.20619
c 0.51583
d 0.70893
Name: a, dtype: float64
In[15]: data.a
Out[15]:
a 0.67194
b 0.20619
c 0.51583
d 0.70893
Name: a, dtype: float64
选择区域
- 行和列的区域
- loc: 参数是对应的索引值,所以参数可以是整数,也可以是字符串
- 形式
- data.loc[i : j, a : b] / data.loc[i : j, [a, b]]
- i, j 只能是索引值,a, b也只能是索引值
- data.loc[a, b]
- a, b只能是索引值
- data.loc[k] / data.loc[k, ]
- k代表行索引的值,如果k不存在会报错
- data.loc[ : , k]
- k代表列索引值,返回第k列
- data.loc[i : j, a : b] / data.loc[i : j, [a, b]]
- 错误
- data.loc[, k]
- data.loc[i : j, a, b]
- data.loc(…)
- 形式
- iloc: 参数表示的是第几行的数据,所以只能是整数
- loc: 参数是对应的索引值,所以参数可以是整数,也可以是字符串
- 单个值
- at
- iat
In[57]:data
Out[57]:
a b c d e
a 0.67194 0.241800 0.83075 0.42741 1
b 0.20619 0.233210 0.81004 0.98691 1
c 0.51583 0.055814 0.92274 0.75797 1
d 0.70893 0.108360 0.33951 0.77058 1
In[58]:data.loc['a']
Out[58]:
a 0.67194
b 0.24180
c 0.83075
d 0.42741
e 1.00000
Name: a, dtype: float64
In[59]:data.loc[1]
Out[57]:
Error
In[60]:data.loc[:,'a']
Out[60]:
a 0.67194
b 0.20619
c 0.51583
d 0.70893
Name: a, dtype: float64
In[61]:data.loc[:,1]
Out[61]:
Error
In[63]:data.iloc[1]
Out[63]:
a 0.20619
b 0.23321
c 0.81004
d 0.98691
e 1.00000
Name: b, dtype: float64
data.iloc[:,1]
Out[64]:
a 0.241800
b 0.233210
c 0.055814
d 0.108360
Name: b, dtype: float64
条件选择
条件1与条件2之间用&连接,条件1,条件2需要用括号包起来
In[81]: data[(data.a > 0.5) & (data.c > 0)]
Out[81]:
a b c d e
a 0.67194 0.241800 0.83075 0.42741 1
c 0.51583 0.055814 0.92274 0.75797 1
d 0.70893 0.108360 0.33951 0.77058 1