当前位置: 首页 > 编程笔记 >

Pandas DataFrame数据的更改、插入新增的列和行的方法

颜宸
2023-03-14
本文向大家介绍Pandas DataFrame数据的更改、插入新增的列和行的方法,包括了Pandas DataFrame数据的更改、插入新增的列和行的方法的使用技巧和注意事项,需要的朋友参考一下

一、更改DataFrame的某些值

1、更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。

2、需要注意的是,数据更改直接针对DataFrame原数据更改,操作无法撤销,如果做出更改,需要对更改条件做确认或对数据进行备份。

代码:

import pandas as pd
df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])

print("--------更换单个值----------")
# loc和iloc 可以更换单行、单列、多行、多列的值
df1.loc[0,'age']=25   # 思路:先用loc找到要更改的值,再用赋值(=)的方法实现更换值
df1.iloc[0,2]=25     # iloc:用索引位置来查找

# at 、iat只能更换单个值
df1.at[0,'age']=25   # iat 用来取某个单值,参数只能用数字索引
df1.iat[0,2]=25     # at 用来取某个单值,参数只能用index和columns索引名称
print(df1)

结果图:

二、插入新增列、行

代码:

import pandas as pd

df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])

print("----------在最后新增一列---------------")
print("-------案例1----------")
# 在数据框最后加上score一列,元素值分别为:80,98,67,90
df1['score']=[80,98,67,90]  # 增加列的元素个数要跟原数据列的个数一样
print(df1)

print("-------案例2----------")
print("---------在指定位置新增列:用insert()--------")
# 在gender后面加一列城市
# 在具体某个位置插入一列可以用insert的方法
# 语法格式:列表.insert(index, obj)
# index --->对象 obj 需要插入的索引位置。
# obj ---> 要插入列表中的对象(列名)

col_name=df1.columns.tolist()          # 将数据框的列名全部提取出来存放在列表里
print(col_name)

col_name.insert(2,'city')           # 在列索引为2的位置插入一列,列名为:city,刚插入时不会有值,整列都是NaN
df1=df1.reindex(columns=col_name)       # DataFrame.reindex() 对原行/列索引重新构建索引值

df1['city']=['北京','山西','湖北','澳门']  # 给city列赋值
print(df1)

print("----------新增行---------------")
# 重要!!先创建一个DataFrame,用来增加进数据框的最后一行
new=pd.DataFrame({'name':'lisa',
         'gender':'F',
         'city':'北京',
         'age':19,
         'score':100},
         index=[1])  # 自定义索引为:1 ,这里也可以不设置index
print(new)

print("-------在原数据框df1最后一行新增一行,用append方法------------")
df1=df1.append(new,ignore_index=True)  # ignore_index=True,表示不按原来的索引,从0开始自动递增
print(df1)

结果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 但现在我也需要知道: 插入了多少行 由于现有而更新了多少行 由于约束无法插入多少行 如果最后一行没有遵守约束,那么以前插入/更新的行是否会保留在数据库中?

  • 本文向大家介绍python插入数据到列表的方法,包括了python插入数据到列表的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python插入数据到列表的方法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Python程序设计有所帮助。

  • 问题内容: 我想在python中创建一个类,它应该像这样工作: 分配的数据,可能绑定到变量(例如或) 插入数据后,它应自动确定数据的某些属性,如果某些属性被填充,它将自动… …将班级改为另一个班级 第三部分是我有问题的部分。我如何真正改变班级内部的班级?例如: 如果我有两个班级,一个是,另一个是;现在我希望将小于1000的任何内容转换为a ,反之亦然,测试代码: 这可能吗? 问题答案: 使用工厂方

  • 本文向大家介绍php+mysqli实现批量执行插入、更新及删除数据的方法,包括了php+mysqli实现批量执行插入、更新及删除数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php+mysqli实现批量执行插入、更新及删除数据的方法。分享给大家供大家参考。具体如下: mysqli批量执行插入/更新/删除数据,函数为 multi_query()。 下面的代码只是批量插入数据,事实

  • 问题内容: 我正在尝试学习EntityFramework,但无法获得基本的插入和更新功能。当包含SqlCe数据库(.sdf)时,向导将创建Test.edmx / designer.vb文件。由此,我创建了我的数据上下文,如下所示。表名称是“用户”。 我的实体类的语法似乎与Web上的示例有些不同。这有点令人困惑,我不知道为什么会这样。下面,我展示了两种不同的Insert方法,这两种方法都在.Save

  • 本文向大家介绍android 修改launcher行数和列数的方法,包括了android 修改launcher行数和列数的方法的使用技巧和注意事项,需要的朋友参考一下 android 修改launcher行数和列数 Launcher3桌面的行数和列数都是在InvariantDeviceProfile.java和DeviceProfile.java中动态计算的,xml中无法配置。 Note:L版本无

  • RecycerView只显示创建时ArrayList(适配器的数据)中的项。我所有添加更多行的尝试似乎都奏效了,但列表仍然是初始数据。它不是重复的,因为我尝试了谷歌上找到的所有建议。我已经做了什么: Adapter.NotifyDataSetChanged(); Adapter.NotifyItemChanged(5); recyleList.invalidate(); recyclelist.s

  • 问题内容: 我正在尝试在postgres中执行以下操作: 但是,即使使用文档(http://www.postgresql.org/docs/9.0/static/sql- update.html )中提到的postgres 9.0,也无法实现第1点 同样,第二点似乎不起作用。我收到以下错误:子查询必须仅返回一列。 希望有人对我有解决方法。否则查询将花费大量时间:(。 仅供参考:我正在尝试从几张表中