首页 > 解决方案 > 用 pandas 数据框列中的最后一位数字替换一组字符串

问题描述

我的熊猫数据框有一列,其行值等于字符串值https://acbedfgid=123456(应该是超链接但在字符串中)或“无提案”,具体取决于其他行值...

如果是前一种情况,我想用最后 6 位数字替换整个字符串(这始终是常数),如果是后一种情况,它应该是原样(“No Proposal”)

我如何在熊猫中实现这一点

谢谢?

标签: pythonpython-3.x

解决方案


你可以试试

df.loc[df['ColName'].ne('No Proposal'), 'ColName'] = df.loc[df['ColName'].ne('No Proposal'), 'ColName'].str[-6:]

或者

df['ColName'].where(df['ColName'].eq('No Proposal'), lambda x: x['ColName'][-6:], inplace=True)

推荐阅读