Pandas数据查询与编辑

简介: Pandas数据查询与编辑

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

目录
相关文章
|
SQL 分布式计算 关系型数据库
SQL、Pandas和Spark:常用数据查询操作对比
当今信息时代,数据堪称是最宝贵的资源。沿承系列文章,本文对SQL、Pandas和Spark这3个常用的数据处理工具进行对比,主要围绕数据查询的主要操作展开。
309 0
SQL、Pandas和Spark:常用数据查询操作对比
|
1月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
72 0
|
3月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
99 0
|
1月前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
43 2
|
5月前
|
数据挖掘 Python
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
538 0
|
2月前
|
机器学习/深度学习 并行计算 大数据
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
【Python篇】深入挖掘 Pandas:机器学习数据处理的高级技巧
93 3
|
2月前
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
45 1
|
3月前
|
机器学习/深度学习 数据采集 监控
Pandas与Matplotlib:Python中的动态数据可视化
Pandas与Matplotlib:Python中的动态数据可视化
|
3月前
|
Python
Python:Pandas实现批量删除Excel中的sheet
Python:Pandas实现批量删除Excel中的sheet
158 0