【DataFrame】查看与筛选数据

1 查看列的数据类型

使用 dtypes 方法可以查看各列的数据类型,比如说之前的 df3。

>>> dic1 = {'name': ['小明', '小红', '狗蛋', '铁柱'], 'age': [17, 20, 5, 40], 'gender': ['男', '女', '女', '男']}
>>> df3 = pd.DataFrame(dic1)
>>> df3.dtypes
name      object
age        int64
gender    object
dtype: object
>>>

2 查看 DataFrame 的头尾

使用 head 可以查看前几行的数据,默认的是前 5 行,不过也可以自己设置。

使用 tail 可以查看后几行的数据,默认也是 5 行,参数可以自己设置。

随意设置一个 6*6 的数据,只看前 5 行。

>>> df4 = pd.DataFrame(np.random.randn(6, 6))
>>> df4.head()
          0         1         2         3         4         5
0  0.321488  1.680416 -0.525665  0.545784 -1.129162  0.346618
1  0.332380 -2.065623  0.186733  2.459071 -1.048581  1.270196
2  0.558762 -1.716748 -0.026422  0.618331  0.710246 -0.115285
3 -1.532169  1.063769  0.860040  1.112915 -0.314987  0.952194
4  0.796889  0.075921  0.878482 -0.952150  0.228675  0.856666
>>>

只看前 3 行。

>>> df4.head(3)
          0         1         2         3         4         5
0  0.321488  1.680416 -0.525665  0.545784 -1.129162  0.346618
1  0.332380 -2.065623  0.186733  2.459071 -1.048581  1.270196
2  0.558762 -1.716748 -0.026422  0.618331  0.710246 -0.115285
>>>

看后 5 行。

>>> df4.tail()
          0         1         2         3         4         5
1  0.332380 -2.065623  0.186733  2.459071 -1.048581  1.270196
2  0.558762 -1.716748 -0.026422  0.618331  0.710246 -0.115285
3 -1.532169  1.063769  0.860040  1.112915 -0.314987  0.952194
4  0.796889  0.075921  0.878482 -0.952150  0.228675  0.856666
5  0.789586  0.415465 -0.587331 -0.401989  0.119820  4.359400
>>>

只看后 2 行。

>>> df4.tail(2)
          0         1         2         3         4         5
4  0.796889  0.075921  0.878482 -0.952150  0.228675  0.856666
5  0.789586  0.415465 -0.587331 -0.401989  0.119820  4.359400
>>>

3 查看行名与列名

使用 index 查看行名,columns 查看列名。具体由例子感受吧。

查看行名。

>>> df3.index
RangeIndex(start=0, stop=4, step=1)
>>>

查看列名。

>>> df3.columns
Index(['name', 'age', 'gender'], dtype='object')
>>>

4 查看数据值

使用 values 可以查看 DataFrame 里的数据值,返回的是一个数组。

比如说查看所有的数据值。

>>> df3.values
array([['小明', 17, '男'],
       ['小红', 20, '女'],
       ['狗蛋', 5, '女'],
       ['铁柱', 40, '男']], dtype=object)
>>>

查看某一列所有的数据值。

>>> df3['name'].values
array(['小明', '小红', '狗蛋', '铁柱'], dtype=object)
>>>

还有另一种操作,使用 loc 或者 iloc 查看数据值(但是好像只能根据行来查看?)。区别是 loc 是根据行名,iloc 是根据数字索引(也就是行号)。

比如说这样。

>>> df1 = pd.DataFrame(np.random.randn(4,4), index=list('ABCD'), columns=list('ABCD'))
>>> df1.loc['A']
A    1.534538
B   -0.457642
C   -0.177800
D   -0.721894
Name: A, dtype: float64
>>>

或者这样。

>>> df1.iloc[0]
A    1.534538
B   -0.457642
C   -0.177800
D   -0.721894
Name: A, dtype: float64
>>>

按列进行索引查看数据还能直接使用列名,但这种方法对行索引不适用。

>>> df3['name']
0    小明
1    小红
2    狗蛋
3    铁柱
Name: name, dtype: object
>>>

5 查看行列数

使用 shape查看行列数,参数为 0 表示查看行数,参数为 1 表示查看列数。

>>> df3.shape[0]
4
>>> df3.shape[1]
3
>>>