weixin_39721336 2023-12-16 17:38 采纳率: 77.8%
浏览 4
已结题

df.replace()和df.str.replace()的区别是啥

python

str1="2001:2001:4904:2010::FFF 2001:2001:4906:2010::FFF"
str2=str1.replace("2001:2001","FE80:2001")
str2
'FE80:2001:4904:2010::FFF FE80:2001:4906:2010::FFF'

这样就可以

python

df=pd.read_excel(r"C:\Users\xWX1134691\Desktop\openpyxl\5.xlsx")
df
   vlanif                      ipv6
0    1110  2001:2001:4904:2010::FFF
1    1111  2001:2001:4906:2010::FFF
2    1112  2001:2001:4903:2010::FFF
df.loc[:,'link-local']=df['ipv6'].str.replace("2001:2001","FE80:2001")
df
   vlanif                      ipv6                link-local
0    1110  2001:2001:4904:2010::FFF  FE80:2001:4904:2010::FFF
1    1111  2001:2001:4906:2010::FFF  FE80:2001:4906:2010::FFF
2    1112  2001:2001:4903:2010::FFF  FE80:2001:4903:2010::FFF

这样也可以

python
df.loc[:,'link-local']=df['ipv6'].replace("2001:2001","FE80:2001")
df
   vlanif                      ipv6                link-local
0    1110  2001:2001:4904:2010::FFF  2001:2001:4904:2010::FFF
1    1111  2001:2001:4906:2010::FFF  2001:2001:4906:2010::FFF
2    1112  2001:2001:4903:2010::FFF  2001:2001:4903:2010::FFF

这样就不行

这个是为啥?

  • 写回答

1条回答 默认 最新

  • 梦幻精灵_cq 2023-12-16 18:16
    关注
    • 您不可以那个,就没抛出的异常信?df['ipv6']是pandas内部数据类型,应该是没有replace方法的。对于它,字符串替换的方法是.str.replace而不是.replace 。

    • 要说区别,对于效果来说,没有。都是对字符串的处理,底层操作应该是无差别的。

    • 如果非要说个区别,那就是针对的对象不同,方法名称不同,感觉调用方式不一样。比如针对python基本数据类型str字符串,您不可以用.str.replace方法实现替换,它根本没有。


    • 建议分别用help(str.replace)和help(df.str.replace)查看其自带的帮助信息。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月25日
  • 已采纳回答 12月17日
  • 创建了问题 12月16日

悬赏问题

  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法