目录:
df.head()- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- # 默认取前5行数据
- print(df.head())
- # 前10行
- print(df.head(10))
df.tail()- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- # 默认取后5行数据
- print(df.tail())
- # 倒数15行
- df2 = df.tail(15)
- print(df2)
df[col_name]等同于df.col_name- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df2 = df.tail(15)
-
- print(df2['country'])
- # print(df2.country)
- # 注意!如果列名字符串中间有空格的,只能使用df['country']这种形式
df[[col_name1,col_name2,...]]- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df2 = df.tail(15)
-
- # 返回新的df
- print(df2[['country', 'GDP']])
布尔值向量:完全由布尔值组成的一维数据,布尔值向量形式为
布尔值构成的列表
布尔值构成的series
布尔值构成的numpy.ndarray
df[布尔值向量] 其中布尔值向量的布尔值个数必须和df的行数(df.shape[0])相等
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail()
- print(df3)
- print(df3[[False, True, False, False, False]])
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail()
-
- # df3['country']=='帕劳'
- # 返回布尔值构成的series对象
- print(df3)
- print(df3[df3['country'] == '帕劳'])
- import numpy as np
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- n1 = np.array([False, True, False, False, False])
-
- df3 = df.tail()
-
- print(df3)
- print(df3[n1])
df[start:stop:step]df[start:stop:step] == df[起始行下标:结束行下标:步长] , 遵循左闭右开原则(包含起始行,不包含结束行),步长默认为1- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df4 = df.head(10) # 取原df前10行数据作为df4,默认自增索引由0到9
- print(df4)
-
- df5 = df4[0:3] # 取前3行
- print(df5)
-
- df6 = df4[:5:2] # 取前5行,步长为2
- print(df6)
-
- df7 = df4[1::3] # 取第2行到最后所有行,步长为3
- print(df7)
df.loc[]通过行名(索引值、索引名)、列名获取子集df.loc[row_name]- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df4 = df.head(10) # 取原df前10行数据作为df4,默认自增索引由0到9
- print(df4)
-
- df5 = df4.loc[2] # 获取索引为2的一行数据
- print(df5)
df.loc[[row_name1,row_name2...]]- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df4 = df.head(10) # 取原df前10行数据作为df4,默认自增索引由0到9
- print(df4)
-
- df5 = df4.loc[[0, 2]] # 获取索引为0和2的数据,返回df
- print(df5)
注意df.loc[start_index_value:end_index_value:step]不等同于df[start:end:step]
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df4 = df.head(10) # 取原df前10行数据作为df4,默认自增索引由0到9
- print(df4)
-
- df5 = df4.loc[:5:2] # 表示获取索引值0到5,每2行取一行
- print(df5)
-
- df6 = df4[:5:2] # 等同于df4.iloc[:5:2]
- print(df6)
df.loc[布尔值向量]df.loc[[bool1,bool2,…]] 等同于 df[[bool1,bool2,…]]
- import pandas as pd
- import numpy as np
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df3 = df.tail()
- print(df3)
-
- df4 = df3.loc[[False, True, False, False, False]]
- print(df4)
-
- df5 = df3.loc[df3['country'] == '帕劳']
- print(df5)
-
- n1 = np.array([False, True, False, False, False])
- df6 = df3.loc[n1]
- print(df6)
df.loc[布尔值向量,[col_name1,col_name2…]]- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df3 = df.tail()
- print(df3)
-
- df4 = df3.loc[df3['country'] == '帕劳', ['country', 'GDP']]
- print(df4)
df.loc[[cow_name1,cow_name2...],[col_name1,col_name2…]]- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df3 = df.tail()
- print(df3)
-
- df4 = df3.loc[[9926], ['country', 'GDP']]
- print(df4)
df.loc[:,[col_name1,col_name2…]- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df3 = df.tail()
- print(df3)
-
- df4 = df3.loc[:, ['GDP']]
- print(df4)
df.iloc[]通过行下标(索引下标、行序号)、列下标获取子集 df.iloc[row_n]- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- df4 = df3.iloc[1]
- print(df4)
df.iloc[[row_1,row_2,…]]- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- df4 = df3.iloc[[1, 3]]
- print(df4)
df.iloc[start:end:step] 左闭右开- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- df4 = df3.iloc[:2]
- print(df4)
-
- df5 = df3[:2]
- print(df5)
-
- # 上述代码不同于
- df6 = df.loc[:2] # 索引值从0到2的所有行 df.loc[start_index_value:end_index_value:step]
- print(df6)
df.iloc[row_index_start:row_index_stop:row_step,col_index_start:col_index_stop:col_step]
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- # 第0行到第4行,每2行选第1行;所有列,每2列取第1列
- df4 = df3.iloc[0:5:2, ::2]
- print(df4)
df.iloc[row_index_start:row_index_stop:row_step,[column_1,column_2…]]
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- # 第0行到第4行,每2行选第1行;所有列,每2列取第1列
- df4 = df3.iloc[0:5:2, [0, 2]]
- print(df4)
df.iloc[[row_1,row_2,…],[column_1,column_2…]]
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- df4 = df3.iloc[[0, 2, 4], [0, 2]]
- print(df4)
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- df4 = df3.iloc[[0, 2, 4], ::2]
- print(df4)
df.query()df.query(判断表达式)可以依据判断表达式返回的符合条件的df子集
与df[布尔值向量]效果相同
特别注意df.query()中传入的字符串格式
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- df4 = df3.query('country=="帕劳"')
- print(df4)
-
- df5 = df3[df3['country'] == '帕劳']
- print(df5)
查询中国、美国、日本三国2015年至2019年的数据
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
-
- df1 = df.query('country=="中国" or country=="日本" or country=="美国"').query('year in [2015, 2016, 2017, 2018, 2019]')
- print(df1)
-
- df2 = df.query('(country=="中国" or country=="日本" or country=="美国") and year in [2015, 2016, 2017, 2018, 2019]')
- print(df2)
df.isin(['x', 'y',...]) 返回由布尔值构成新的df,原df中存在x或y的位置为True,不是x或y的为False
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- df4 = df3.isin(['帕劳'])
- print(df4)
-
- df5 = df3.isin(['帕劳', '瑙鲁'])
- print(df5)
Serires对象使用isin函数返回新的s对象,其他完全相同
- import pandas as pd
-
- # 加载csv数据,指定gbk编码格式来读取文件,返回df
- df = pd.read_csv('../datas/data_set/1960-2019全球GDP数据.csv', encoding='gbk')
- df3 = df.tail() # 构造示例数据集
- print(df3)
-
- df4 = df3['country'].isin(['帕劳'])
- print(df4)
-
- df5 = df3['country'].isin(['帕劳', '瑙鲁'])
- print(df5)
| 子集操作方法 | 方法说明 |
|---|---|
df.head(n) | 获取前n行数据,默认5行 |
df.tail(n) | 获取最后n行数据,默认5行 |
df[col_name] 或 df.col_name | 获取一列数据 |
df[[col_name1,col_name2,...]] | 获取多列数据 |
df[布尔值向量] | df[[True, False, ...]]取出对应为True的数据行 |
df[start:stop:step] | 行下标(索引下标)切片获取数据行 |
df.loc[row_name] | 索引值(行名)获取1行数据 |
df.loc[[row_name1,row_name2...]] | 索引值(行名)获取多行数据 |
df.loc[start_index_value:end_index_value:step] | 索引值切片获取多行数据,注意与df[start:stop:step]不同 |
df.loc[布尔值向量] | 布尔值向量获取行数据,等同于df[布尔值向量] |
df.loc[布尔值向量,[col_name1,col_name2…]] | 布尔值向量取行再配合列名取子集 |
df.loc[[cow_name1,cow_name2...],[col_name1,col_name2…]] | 索引值取行再配合列名取子集 |
df.loc[:,[col_name1,col_name2…] | 列名取子集 |
df.iloc[row_n] | 行号取1行 |
df.iloc[[row_1,row_2,…]] | 行号取多行 |
df.iloc[start:end:step] | 行号下标切片取多行 |
df.iloc[row_index_start:row_index_stop:row_step, col_index_start:col_index_stop:col_step] | 行列下标切片取子集 |
df.iloc[row_index_start:row_index_stop:row_step,[column_1,column_2…]] | 行下标切片和列下标取子集 |
df.iloc[[row_1,row_2,…],[column_1,column_2…]] | 行下标和列下标取子集 |
df.iloc[[row_1,row_2,…],col_index_start:col_index_stop:col_step] | 行下标和列下标切片取子集 |
df.query('判断表达式字符串') 与 df[布尔值向量]效果相同 | 依据判断表达式返回的符合条件的df子集 |
df.isin(['value1', 'value2', ...]) | 判断是否存在某个值 |
loc和iloc的区别:
loc是根据行列名获取子集
iloc是根据下标获取子集
Python: 66666666666666 - Gitee.com