Pandas数据查询与编辑

目录

1.DataFrame数据的查询

1.1选取行

1.2选取列

1.3选取行和列

2.DataFrame数据的编辑

2.1增加数据

2.2删除数据

2.3修改数据

2.4修改列名


1.DataFrame数据的查询

1.1选取行

可以通过行索引或行索引位置的切片形式选取行数据。

data = {
    'name':['张三', '李四', '王五', '小明'],
    'sex':['female', 'female', 'male', 'male'],
    'year':[2001, 2001, 2003, 2002],
    'city':['北京', '上海', '广州', '北京']
}
df = pd.DataFrame(data)
print(df)
print('显示前2行:\n',df[:2])  
print('显示2-3两行:\n',df[1:3])  
#----------------------------------------
 name     sex  year city
0   张三  female  2001   北京
1   李四  female  2001   上海
2   王五    male  2003   广州
3   小明    male  2002   北京
显示前2行:
   name     sex  year city
0   张三  female  2001   北京
1   李四  female  2001   上海
显示2-3两行:
   name     sex  year city
1   李四  female  2001   上海
2   王五    male  2003   广州

除了切片形式之外,还可以通过head()和tail()方法获取多行数据,但这两种方法得到的数据都是从开头或结尾获取的连续数据。

head() 默认获取前5行数据
head(n) 获取前n行数据
tail() 默认获取后5行数据
tail(n) 获取后n行
sample(n) 随机抽取n行显示
sample(frac=0.6) 随机抽取60%的行

1.2选取列

选取列时不能使用切片形式,可以通过列索引标签或以属性的方式单独获取DataFrame的列数据。

w1 = df5[['name','year']]
display(w1)
display(df5.select_dtypes(exclude='int64').head())# 选择非‘int64’类型的列显示
#---------------------------------------------------------------------------
        name	year
city		
北京	张三	2001
上海	李四	2001
广州	王五	2003
北京	小明	2002
        name	sex
city		
北京	张三	female
上海	李四	female
广州	王五	male
北京	小明	male

1.3选取行和列

loc和iloc方法:

display(df5.loc[['北京','上海'],['name','year']] ) 
#显示北京和上海行中的name和year两列
print(df5.iloc[[1,3],[1,2]])
#--------------------------------------------
name	year
city		
北京	张三	2001
北京	小明	2002
上海	李四	2001
        sex     year
city              
上海    female  2001
北京      male  2002

query方法:

display(df5.query(' year>2001'))
display(df5.query('year>2001 & year<2003'))
#--------------------------------------------
name	sex	year
city			
广州	王五	male	2003
北京	小明	male	2002
name	sex	year
city			
北京	小明	male	2002

2.DataFrame数据的编辑

2.1增加数据

增加一行数据直接通过append方法传入字典数据结构即可;增加列时,只需为新增的列赋值即可,如果要指定新增列的位置,可以用insert函数实现。

df5['score'] = [85,78,96,80]
df5.insert(1,'no',['001','002','003','004'])
print(df5)
#--------------------------------------------
  name   no     sex  year  score
city                               
北京     张三  001  female  2001     85
上海     李四  002  female  2001     78
广州     王五  003    male  2003     96
北京     小明  004    male  2002     80

2.2删除数据

删除数据直接用drop方法,axis=0时删除行,axis=1时删除列,默认数据删除不修改原数据,如果在原数据上删除需要设置参数inplace=True。

# 删除数据的行
df5.drop('广州',axis=0,inplace = True)
display(df5)
# 删除数据的列
df5.drop('sex',axis = 1,inplace = True)
display(df5)
#---------------------------------------
        name	no	sex	year	score
city					
北京	张三	001	female	2001	85
上海	李四	002	female	2001	78
北京	小明	004	male	2002	80
        name	no	year	score
city				
北京	张三	001	2001	85
上海	李四	002	2001	78
北京	小明	004	2002	80

2.3修改数据

df5.replace('张三','小王',inplace=True)
display(df5)
#---------------------------------------
        name	no	year	score
city				
北京	小王	001	2001	85
上海	李四	002	2001	78
北京	小明	004	2002	80

2.4修改列名

通过使用rename()函数来修改列名

df5.rename(columns={'no':'number'}, inplace=True)
display(df5)
#-------------------------------------------------
        name	number	year	score
city				
北京	小王	001	2001	85
上海	李四	002	2001	78
北京	小明	004	2002	80

猜你喜欢

转载自blog.csdn.net/m0_64087341/article/details/124075043