DataFrame数据选择方式

选择方式

  • 选择行
  • 选择列
  • 选择区域
  • 筛选(条件选择)

选择行

  • 形式
    • data[i : j]
      • 切片:i, j 是数字,代表所取的行号,范围为[i, j)
      • 索引:i, j是行索引名,范围为[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[, k]
        • data.loc[i : j, a, b]
        • data.loc(…)
    • iloc: 参数表示的是第几行的数据,所以只能是整数
  • 单个值
    • 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

猜你喜欢

转载自blog.csdn.net/niukai1768/article/details/79863815