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. 数据定位
- 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的行的指定列数据。
- 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列的数据。
- 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的行的指定列数据。
- 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。

浙公网安备 33010602011771号