Title

Pandas数据查看

Pandas数据查看

import pandas as pd
import numpy as np

df = df = pd.DataFrame({"id":[1001,1002,1003,1004,1005,1006], 
 "date":pd.date_range('20130102', periods=6),
  "city":['Beijing ', 'SH', ' guangzhou ', 'Shenzhen', 'shanghai', 'BEIJING '],
 "age":[23,44,54,32,34,32],
 "category":['100-A','100-B','110-A','110-C','210-A','130-F'],
  "price":[1200,np.nan,2133,5433,np.nan,4432]},
  columns =['id','date','city','category','age','price'])

df
id date city category age price
0 1001 2013-01-02 Beijing 100-A 23 1200.0
1 1002 2013-01-03 SH 100-B 44 NaN
2 1003 2013-01-04 guangzhou 110-A 54 2133.0
3 1004 2013-01-05 Shenzhen 110-C 32 5433.0
4 1005 2013-01-06 shanghai 210-A 34 NaN
5 1006 2013-01-07 BEIJING 130-F 32 4432.0

1.维度查询

df.shape

返回一个元组,表示DataFrame的行数和列数。

df.shape
(6, 6)

2. 查询数据表基本信息

df.info()

返回DataFrame的基本信息,包括数据类型、非空值数量和内存使用情况。

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 6 columns):
 #   Column    Non-Null Count  Dtype         
---  ------    --------------  -----         
 0   id        6 non-null      int64         
 1   date      6 non-null      datetime64[ns]
 2   city      6 non-null      object        
 3   category  6 non-null      object        
 4   age       6 non-null      int64         
 5   price     4 non-null      float64       
dtypes: datetime64[ns](1), float64(1), int64(2), object(2)
memory usage: 416.0+ bytes

3. 查看所有行的行索引

df.index
df.index.values

df.index返回一个Index对象,表示DataFrame的行索引。
df.index.values返回一个NumPy数组,包含行索引的值。

df.index
RangeIndex(start=0, stop=6, step=1)
df.index.values
array([0, 1, 2, 3, 4, 5])

4. 查看所有列的列索引

df.columns
df.columns.values

df.columns返回一个Index对象,表示DataFrame的列索引。
df.columns.values返回一个NumPy数组,包含列索引的值。

df.columns.values
array(['id', 'date', 'city', 'category', 'age', 'price'], dtype=object)

5. 每一列数据的格式

df.dtypes

返回一个Series,索引为列名,值为每列的数据类型。

df.dtypes
id                   int64
date        datetime64[ns]
city                object
category            object
age                  int64
price              float64
dtype: object

6. 某一列的格式

df['列名'].dtype

返回指定列的数据类型。

df['id'].dtype
dtype('int64')

7. 某一列的值

df['列名'].values
df['列名'].to_numpy()

返回指定列的值,作为一个NumPy数组。

df['id'].values
array([1001, 1002, 1003, 1004, 1005, 1006])

8. 空值查询

df.isnull()
df.isnull().sum()

df.isnull()返回一个布尔DataFrame,表示每个元素是否为空值。
df.isnull().sum()返回一个Series,表示每列的空值数量。

df.isnull()
id date city category age price
0 False False False False False False
1 False False False False False True
2 False False False False False False
3 False False False False False False
4 False False False False False True
5 False False False False False False
df.isnull().sum()
id          0
date        0
city        0
category    0
age         0
price       2
dtype: int64

9. 某一列的空值查询

df['列名'].isnull()
df['列名'].isnull().sum()

返回指定列的空值布尔Series和空值数量。

10. 查看某一列的唯一值

df['列名'].unique()

返回指定列的唯一值,作为一个NumPy数组。

df['id'].unique()
array([1001, 1002, 1003, 1004, 1005, 1006])

11. 查看数据表的值

df.values
df.to_numpy()

返回DataFrame的值,作为一个NumPy数组。

df.values
array([[1001, Timestamp('2013-01-02 00:00:00'), 'Beijing ', '100-A', 23,
        1200.0],
       [1002, Timestamp('2013-01-03 00:00:00'), 'SH', '100-B', 44, nan],
       [1003, Timestamp('2013-01-04 00:00:00'), ' guangzhou ', '110-A',
        54, 2133.0],
       [1004, Timestamp('2013-01-05 00:00:00'), 'Shenzhen', '110-C', 32,
        5433.0],
       [1005, Timestamp('2013-01-06 00:00:00'), 'shanghai', '210-A', 34,
        nan],
       [1006, Timestamp('2013-01-07 00:00:00'), 'BEIJING ', '130-F', 32,
        4432.0]], dtype=object)

12. 查看前几行数据

df.head(n=5)

返回DataFrame的前n行数据,默认n=5。

13. 查看后几行数据

df.tail(n=5)

返回DataFrame的后n行数据,默认n=5。

14. 数据定位

  1. df.loc[行索引, 列索引]
    • 返回指定行和列的值。
    • 行索引可以是标签或布尔数组,列索引可以是标签或列表。
    • 可以使用切片语法进行范围选择。
    • 例如,df.loc['行标签', '列标签']返回指定行和列的值。
    • 可以使用布尔数组进行行选择,例如df.loc[df['列名'] > 0, :]返回所有列中指定列大于0的行。
    • 可以使用列表进行列选择,例如df.loc[:, ['列1', '列2']]返回指定的两列数据。
    • 可以使用标签列表进行行和列选择,例如df.loc[['行1', '行3'], ['列1', '列2']]返回指定行和列的数据。
    • 可以使用切片和标签列表组合进行复杂选择,例如df.loc['行1':'行5', ['列1', '列3']]返回指定行范围和指定列的数据。
    • 可以使用布尔数组和标签列表组合进行复杂选择,例如df.loc[df['列名'] > 0, ['列1', '列3']]返回所有列中指定列大于0的行的指定列数据。
  2. df.iloc[行位置, 列位置]
    • 返回指定行和列位置的值。
    • 行位置和列位置都是整数索引。
    • 可以使用切片语法进行范围选择。
    • 例如,df.iloc[0:5, 0:3]返回前5行和前3列的数据。
    • 可以使用布尔数组进行行选择,例如df.iloc[[True, False, True], :]返回第一行和第三行的数据。
    • 可以使用列表进行列选择,例如df.iloc[:, [0, 2]]返回第1列和第3列的数据。
    • 可以使用整数列表进行行和列选择,例如df.iloc[[0, 2], [1, 3]]返回第1行第2列和第3行第4列的数据。
    • 可以使用切片和整数列表组合进行复杂选择,例如df.iloc[0:5, [0, 2]]返回前5行的第1列和第3列的数据。
    • 可以使用布尔数组和整数列表组合进行复杂选择,例如df.iloc[[True, False, True], [0, 2]]返回第一行和第三行的第1列和第3列的数据。
    • 可以使用切片和布尔数组组合进行复杂选择,例如df.iloc[0:5, [True, False, True]]返回前5行的第1列和第3列的数据。
    • 可以使用布尔数组和切片组合进行复杂选择,例如df.iloc[[True, False, True], 0:3]返回第一行和第三行的前3列的数据。
  3. df.at[行标签, 列标签]
    • 返回指定行和列标签的单个值。
    • 例如,df.at['行标签', '列标签']返回指定行和列的值。
    • 适用于快速访问单个元素。
    • 可以使用标签进行行和列选择,例如df.at['行1', '列1']返回指定行和列的值。
    • 可以使用标签列表进行行和列选择,例如df.at[['行1', '行3'], ['列1', '列2']]返回指定行和列的数据。
    • 可以使用切片和标签列表组合进行复杂选择,例如df.at['行1':'行5', ['列1', '列3']]返回指定行范围和指定列的数据。
    • 可以使用布尔数组和标签列表组合进行复杂选择,例如df.at[df['列名'] > 0, ['列1', '列3']]返回所有列中指定列大于0的行的指定列数据。
  4. df.iat[行位置, 列位置]
    • 返回指定行和列位置的单个值。
    • 行位置和列位置都是整数索引。
    • 例如,df.iat[0, 1]返回第1行第2列的值。
    • 适用于快速访问单个元素。
    • 可以使用整数索引进行行和列选择,例如df.iat[0, 1]返回第1行第2列的值。
    • 可以使用整数列表进行行和列选择,例如df.iat[[0, 2], [1, 3]]返回第1行第2列和第3行第4列的值。

15. 选择满足条件的行

df[df['列名'] > 某个值]
返回满足条件的行,条件可以是比较运算符或逻辑运算符。
df[df['列名'] == '某个值']

返回指定列等于某个值的行。

df[df['列名'].str.contains('某个字符串')]

返回指定列包含某个字符串的行。

16. 选择某几列

df[['列名1', '列名2']]

返回指定的几列,作为一个新的DataFrame。

df.loc[:, ['列名1', '列名2']]

返回指定的几列,作为一个新的DataFrame。

df.iloc[:, [0, 2]]

返回指定位置的几列,作为一个新的DataFrame。

posted @ 2025-08-22 20:56  栗悟饭与龟功気波  阅读(7)  评论(0)    收藏  举报