关于DataFrame数据的查询和编辑

 更新时间:2024年09月12日 13:53:23   作者:瑞雪兆丰年(润 )  
在使用pandas处理DataFrame时,可通过列索引标签获取列数据,行数据的获取可以利用行索引或位置切片,如iloc和loc方法,增加数据时,可通过append方法增加行,直接赋值增加列,删除数据则通过drop方法,通过设置axis参数确定是删除行还是列

(不少于4个代码案例,选取行,选取列,增加行,删除行)

查询【一般都是通过索引来操作的】

1.选取列

通过列索引标签或者属性的方式可以单独获取DataFrame的列数据,返回数据类型为Series。

在选取列时不能使用切片的方式,超过一个列名用df[['列名1','列名2']]

# 选取列
import pandas as pd
import numpy as np
data = {
    'name':[杨大润','李玉芳','马庆显'],
    'age':[21,19,23],
    'address':['兰州','上海','北京']
}
df = pd.DataFrame(data)
print(df)
w1 = df['name']
print("以列名取一列数据:\n", w1)
w2 = df[['name','age']]
print("以列名取两份数据:\n", w2)

2.选取行

通过行索引或者行索引位置切片形式获取行数据【从0开始的,左闭右开】。

DataFrame提供的head【开头开始】和tail【结尾】可以取连续多行数据,sample可以随机抽取并显示数据

# 取行  从0开始的
import pandas as pd
data = {
    'name':['杨大润','李玉芳','马庆显'],
    'age':[21,19,23],
    'address':['贵州','上海','北京']
}
df = pd.DataFrame(data)
print(df)
print('显示前两行:\n', df[:2])
print('显示2行:\n', df[1:2])
# head从第一行取,默认前五行
print(df.head())
print(df.head(1))
# tail默认最后五行   可以带数字取最后的
print(df.tail())
print(df.tail(1))
# sample随机抽取n行显示
print(df.sample(1))

3.读取行和列

切片选取行限制比较大,取单独的几行数据可以采用Pandas提供的iloc和loc方法实现。

用法:

  • DataFrame.loc(行索引位置, 列索引位置)
  • ​ DataFrame.loc(行索引名称或条件, 列索引名称)
# loc
import pandas as pd
import numpy as np
data = {
   'name':['杨将军(大润)', '李女将(玉芳)', '马(军师)庆显', '韦女将(思妍)', '徐大将(佳宇)'],
   'location':['游走', '下路', '打野', '中单', '上单'],
   'dynasty':['蜀', '蜀', '战国', '汉', '蜀'],
   'year':[1999, 2000, 2020, 2050, 3030]
}
df1 = pd.DataFrame(data, columns=['name','location','dynasty','address','year'],index=['a','b','c','d','e'])
df2 = df1.set_index('dynasty')
print(df2)
print("取name和year两列的数据:\n",df2.loc[:,['name','year']])
print("取汉,战国行中name,year的数据:\n",df2.loc[['汉','战国'],['name','year']])

4.增加数据

增加一行通过append方法传入字典结构数据即可,增加列时为增加的列赋值即可创建一个新的列,具体给值要对应,不然会报错

#插入一行数据append
#加列并赋值
import pandas as pd
import numpy as np
data = {
	'name':['杨将军(大润)', '李女将(玉芳)', '马(军师)庆显', '韦女将(思妍)', '徐大将(佳宇)'],
	'location':['游走', '下路', '打野', '中单', '上单'],
	'dynasty':['蜀', '蜀', '战国', '汉', '蜀'],
	'year':[1999, 2000, 2020, 2050, 3030]
}
df1 = pd.DataFrame(data, columns=['name','location','dynasty','address','year'],index=['0','1','2','3','4'])

df1['C'] = 10
df1['age'] = [24,33,19,40,80]

data1 = {
    'name':'吴医师(宗蔚)',
    'location':'打野',
    'dynasty':'唐',
    'year':1909
}
df1.append(data1,ignore_index=True)

print(df1)
print(df1.append(data1,ignore_index=True))

5.删除行和列

删除数据直接用drop方法,行列数据通过axis参数设置默认为0删除行,1删除列。

默认数据删除不修改原数据,如果在原数据上删除加入参数inplace=True即可!

import numpy as np
import pandas as pd

df = pd.DataFrame(data=[['杨大润', '男', 22], ['李玉芳', '女', 18], ['韦思妍', '女', 18],
                        ['马庆显', '男', 23], ['徐佳宇', '女', 18], ['吴宗蔚', '女', 21]], index=[1, 2, 3, 4, 5, 6],
                  columns=['name', 'sex', 'age'])
# 测试数据。
print(df)

h=df.drop([1,3],axis = 0,inplace = False)         #删除index值为1和3的两行,
print(h)


l=df.drop(['name'],axis = 1,inplace = False)   #删除name列。
print(l)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python如何通过注册表动态管理组件

    python如何通过注册表动态管理组件

    使用注册表的主要优势是可以在运行时动态创建对象,从而实现高度可配置和可扩展的设计,这篇文章主要介绍了python如何通过注册表动态管理组件,需要的朋友可以参考下
    2024-05-05
  • Python实现繁體转为简体的方法示例

    Python实现繁體转为简体的方法示例

    这篇文章主要介绍了Python实现繁體转为简体的方法,涉及Python编码转换相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • 关于Qt6中QtMultimedia多媒体模块的重大改变分析

    关于Qt6中QtMultimedia多媒体模块的重大改变分析

    如果您一直在 Qt 5 中使用 Qt Multimedia,则需要对您的实现进行更改。这篇博文将尝试引导您完成最大的变化,同时查看 API 和内部结构
    2021-09-09
  • Python实现直播推流效果

    Python实现直播推流效果

    这篇文章主要介绍了Python实现直播推流效果,主要是通过opencv读取视频对视频分割为帧,本文通过实例代码讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • python学习基础之循环import及import过程

    python学习基础之循环import及import过程

    python中的import语句是用来导入模块的,下面这篇文章主要给大家介绍了关于python学习基础之循环import及import过程的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2018-04-04
  • 利用Matplotlib实现单画布绘制多个子图

    利用Matplotlib实现单画布绘制多个子图

    这篇文章主要介绍了利用Matplotlib实现单画布绘制多个子图,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • python计算n的阶乘的方法代码

    python计算n的阶乘的方法代码

    在本篇文章里小编给各位整理的是关于python计算n的阶乘的相关知识点,需要的朋友们参考下。
    2019-10-10
  • Python脚本实现一键执行MySQL与达梦数据库的SQL

    Python脚本实现一键执行MySQL与达梦数据库的SQL

    这篇文章主要为大家详细介绍了如何使用Python 脚本 + PyInstaller 打包成可执行文件,一键搞定 MySQL 和达梦(DM)数据库的 SQL 执行,希望对大家有所帮助
    2025-08-08
  • 基于Python制作一个桌面宠物

    基于Python制作一个桌面宠物

    这篇文章主要来和大家分享一个Python宠物桌面小程序,全程都是通过 PyQT 来制作的,对于 Python GUI 感兴趣的朋友,千万不要错过哦
    2022-12-12
  • Python图像处理库PIL的ImageEnhance模块使用介绍

    Python图像处理库PIL的ImageEnhance模块使用介绍

    这篇文章主要介绍了Python图像处理库PIL的ImageEnhance模块使用介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02

最新评论