pandas如何修改特定的值

 更新时间:2024年02月19日 09:26:43   作者:道航不高  
这篇文章主要介绍了pandas如何修改特定的值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

map、apply映射

map和apply都是用于映射的,map一般用于Series对象,而apply用于DataFrame对象。

简答的讲:

  • 就是如果要对某一列数据进行映射,map和apply都可以;
  • 但是如果要对多列数据同时进行映射或者一个映射关系中涉及多个列作为自变量,就只能用apply而不能用map。

所以很多观点认为apply比map更好用。

实际上map也有独特之处:

  • 例如:
  • 要针对某一列进行字典映射时,map函数可以直接接受字典,而apply就不支持字典类型参数。

上代码对比:

"""用map实现字典映射"""
df = pd.DataFrame({"姓名":["大宝","二狗","三炮","四眼","五福"],"工龄":[3,5,2,1,None],"奖金":[200,300,100,100,None]})
change = {"大宝":"张三",
          "二狗":"李四",
          "三炮":"王五",
          "四眼":"赵六",
         "五福":"宋七"}
df["姓名"] = df["姓名"].map(change)
# 注意:用map做字典映射的时候,字典的键必须包含Series所有的非重复值,否则没在字典键没有描述到的值也会被默认修改成最后一个键的值

def fun(x):
    return x + 1
df["工龄"] = df["工龄"].map(fun) # 不论map还是apply,都是只传函数名不加括号调用
"""apply可以映射多个参数的函数"""
def func(x,num):
    return x + x * num

def foo(x,y):
    if x >= 3:
        return x * y
    else:
        return x * y / 2
df["次月奖金"] = df["奖金"].apply(func,args=(0.1,),axis=1) #args用于接收额外的参数,以元组类型传递。axis默认等于0
df["年终奖"] = df.apply(lambda df: foo(x=df["工龄"],y=df["奖金"]),axis=1) # 个人推荐用法
df[["奖金","次月奖金","年终奖"]].apply(sum,axis=0) #对每列求和

根据某些特定条件修改列的值

df.loc[df["工龄"]<2,"年终奖"] = 500 # 其本质是根据特定条件找到符合条件的索引重新赋值
# 注意使用上述用法的前提是DataFrame的索引必须是连续不间断的。若索引不连续,可以先用reset_index()将索引转换成列,这样就会默认生成新的索引

用指定值填充空值

df.fillna({"工龄":1,"奖金":df["工龄"]*100},inplace=True)

总结

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

相关文章

  • Python 如何调试程序崩溃错误

    Python 如何调试程序崩溃错误

    这篇文章主要介绍了Python 如何调试程序崩溃错误,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08
  • Python OpenCV学习之特征点检测与匹配详解

    Python OpenCV学习之特征点检测与匹配详解

    提取图像的特征点是图像领域中的关键任务,不管在传统还是在深度学习的领域中,特征代表着图像的信息,对于分类、检测任务都是至关重要的。这篇文章主要为大家详细介绍了OpenCV特征点检测与匹配,需要的可以参考一下
    2022-01-01
  • Python基于动态规划算法计算单词距离

    Python基于动态规划算法计算单词距离

    这篇文章主要介绍了Python基于动态规划算法计算单词距离的方法,实例分析了Python动态规划算法的实现与使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Django 根据数据模型models创建数据表的实例

    Django 根据数据模型models创建数据表的实例

    今天小编就为大家分享一篇Django 根据数据模型models创建数据表的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python实战整活之聊天机器人

    Python实战整活之聊天机器人

    这篇文章主要介绍了Python实战整活之聊天机器人,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Python中urllib2模块的8个使用细节分享

    Python中urllib2模块的8个使用细节分享

    这篇文章主要介绍了Python中urllib2模块的8个使用细节分享,本文讲解了Proxy设置、Timeout设置、加入特定Header、Redirect、Cookie、PUT和DELETE方法等内容,需要的朋友可以参考下
    2015-01-01
  • python实现钉钉机器人自动打卡天天早下班

    python实现钉钉机器人自动打卡天天早下班

    这篇文章主要为大家介绍了python实现钉钉机器人自动打卡天天下早班实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • python光学仿真学习wxpython创建手速测试程序

    python光学仿真学习wxpython创建手速测试程序

    这篇文章主要介绍了python光学仿真学习使用wxpython创建一个手速测试程序示例的实现,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • 示例详解Python3 or Python2 两者之间的差异

    示例详解Python3 or Python2 两者之间的差异

    这篇文章主要介绍了Python3 or Python2?示例详解两者之间的差异,在本文中给大家介绍的非常详细,需要的朋友可以参考下
    2018-08-08
  • Python操作Redis数据库的超详细教程

    Python操作Redis数据库的超详细教程

    大家应该都知道redis是一个基于内存的高效的键值型非关系数据库,下面这篇文章主要给大家介绍了关于Python操作Redis的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06

最新评论

?


http://www.vxiaotou.com