pandas如何修改DataFrame行/列/字段值

 更新时间:2023年08月15日 10:04:13   作者:guotianqing  
这篇文章主要介绍了pandas如何修改DataFrame行/列/字段值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

pandas修改DataFrame行/列/字段值

增加/修改一列

有如下几种方法增加一列:

  • 增加具有相同值的一列
import pandas as pd    
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }    
df=pd.DataFrame(dict,index=['2018','2019','2020'])    
print(df)    
print('\n')    
print('Adding new column:')    
print('\n')    
df['Economics']=99    
print(df)    

结果如下:

在这里插入图片描述

  • 增加定制值的一列,此方法也可以修改原有值
df['Economics']=99  
df['Economics']=[99,85,56]
print(df)    
df.at[:,'Economics']=[78,85,74] 
print(df)    
df.loc[:,'Economics']=[94,87,86]
print(df)    
df2=df.assign(Economics=[92,81,66])    
print(df)    

输出如下:

在这里插入图片描述

增加/修改一行

语法基本同列,直接上代码:

# 增加具有相同值的一行
df.at[2021,:]=100    
print(df)    
# 定制值,该方法也可修改该行原有值
df.loc['2022',:]=[89,21,87,59,22]    
print(df) 

输出如下:

在这里插入图片描述

删除列

代码:

# 只有删除一列
del df['Economics']  
# 可删除多列,有多个参数,其中,axis=1表示列,0表示行,inplace表示是否本地修改,默认False,返回修改后的df,原df不变,True则表示修改原来的df
df.drop(['English','Science'],axis=1,inplace=True)

结果如下:

在这里插入图片描述

删除行

使用drop即可:

import pandas as pd    
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }    
df=pd.DataFrame(dict,index=['2018','2019','2020'])    
df.at[2021,:]=100    
df.at[2022,:]=[99,98,97,96]    
print(df)    
print('\n')    
print('Deleting a row:')    
print('\n')    
df.drop(['2019'],axis=0,inplace=True)    
print(df)    
print('\n')    
print('Deleting multiple rows:')    
print('\n')    
df.drop(df.index[[0,2]],axis=0,inplace=True)    
print(df)     

结果如下:

在这里插入图片描述

修改指定值

可以基于指定的列名和行名修改,也可以根据指定的行号和列号修改。

示例如下:

import pandas as pd    
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }     
df=pd.DataFrame(dict,index=['2018','2019','2020'])   
print(df)    
# 基于指定的列名和行名修改
using_name=df.Math['2019']=99    
print(df)    
# 根据指定的行号和列号修改
using_index=df.iloc[2,2]=99    
print(df)    

结果如下:

在这里插入图片描述

注意:

DataFrame提供了丰富的方法来操作数据,可以方便地对行列进行增删改操作。

pandas更改DataFrame中的值

构造DataFrame

import pandas as pd
import numpy as np
dates = pd.date_range('20200315', periods = 5)
df = pd.DataFrame(np.arange(20).reshape((5,4)), index = dates, columns = ['A','B','C','D'])
print(df)
#输出
             A   B   C   D
2020-03-15   0   1   2   3
2020-03-16   4   5   6   7
2020-03-17   8   9  10  11
2020-03-18  12  13  14  15
2020-03-19  16  17  18  19

运用loc、iloc更改值

我们可以利用索引或者标签确定需要修改值的位置。

df.loc['20200318','C'] = 20200318     #标签索引
df.iloc[2,3] = 20200318    #数字索引
print(df)
#输出
             A   B         C         D
2020-03-15   0   1         2         3
2020-03-16   4   5         6         7
2020-03-17   8   9        10  20200318
2020-03-18  12  13  20200318        15
2020-03-19  16  17        18        19

运用条件判断更改值

如果现在的判断条件是这样, 我们想要更改B中的数, 而更改的位置是取决于 C的. 对于C大于6的位置. 更改B在相应位置上的数为0.

df.B[df.C>6] = 0    #C字段中大于6的那些行在B字段中全都设为0
print(df)
#输出
             A  B         C         D
2020-03-15   0  1         2         3
2020-03-16   4  5         6         7
2020-03-17   8  0        10  20200318
2020-03-18  12  0  20200318        15
2020-03-19  16  0        18        19

在DataFrame中添加一列

如果对整列做批处理, 加上一列 ‘E’, 并将 E 列全改为 NaN, 如下:

df['E'] = np.nan
print(df)
#输出
             A   B   C   D   E
2020-03-15   0   1   2   3 NaN
2020-03-16   4   5   6   7 NaN
2020-03-17   8   9  10  11 NaN
2020-03-18  12  13  14  15 NaN
2020-03-19  16  17  18  19 NaN

用上面的方法也可以加上 Series 序列(但是长度必须对齐)。

df['F'] = pd.Series([11,22,33,44,55],index = pd.date_range('20200315',periods = 5))
print(df)
#输出
             A   B   C   D   E   F
2020-03-15   0   1   2   3 NaN  11
2020-03-16   4   5   6   7 NaN  22
2020-03-17   8   9  10  11 NaN  33
2020-03-18  12  13  14  15 NaN  44
2020-03-19  16  17  18  19 NaN  55

总结

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

相关文章

  • Python Generator生成器函数基本概念及高级用途技巧示例

    Python Generator生成器函数基本概念及高级用途技巧示例

    这篇文章主要为大家介绍了Python Generator生成器函数基本概念及高级用途技巧示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Python实现屏幕代码雨效果的示例代码

    Python实现屏幕代码雨效果的示例代码

    这篇文章主要介绍了如何利用Python中的Pygame模块实现代码雨效果,文中通过示例代码介绍的非常详细,感兴趣的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • python根据时间获取周数代码实例

    python根据时间获取周数代码实例

    这篇文章主要介绍了python根据时间获取周数,通过周数获取时间代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • python list数据等间隔抽取并新建list存储的例子

    python list数据等间隔抽取并新建list存储的例子

    今天小编就为大家分享一篇python list数据等间隔抽取并新建list存储的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python实时获取cmd的输出

    Python实时获取cmd的输出

    本文给大家分享python实时获取cmd的输出,对python实时获取输出相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • python反扒机制的5种解决方法

    python反扒机制的5种解决方法

    这篇文章主要介绍了python反扒机制的5种解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python中 * 号的用法总结

    Python中 * 号的用法总结

    Python中的 *号是一个特殊的符号,在其他编程语言中,它最广为人知的用途就是作为乘法运算的符号,本文总结了Python中*号的所有用途,希望对大家有所帮助
    2023-11-11
  • python基于property()函数定义属性

    python基于property()函数定义属性

    这篇文章主要介绍了python基于property()函数定义属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Python文本相似性计算之编辑距离详解

    Python文本相似性计算之编辑距离详解

    大家在做爬虫的时候,很容易保持一些相似的数据,这些相似的数据由于不完全一致,如果要通过人工一一的审核,将耗费大量的时间,大家对编辑距离应该有所了解,这篇文章我们先来了解下什么是编辑距离,然后在学习Python如何计算编辑距离,下面来一起学习学习吧。
    2016-11-11
  • 新手常见6种的python报错及解决方法

    新手常见6种的python报错及解决方法

    这篇文章主要为大家详细介绍了新手常见6种的python报错及解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03

最新评论