gpt4 book ai didi

python - Pandas 检查列中 x 的子字符串,如果找到将字符串添加到 x

转载 作者:行者123 更新时间:2023-12-04 07:51:10 25 4
gpt4 key购买 nike

我的数据帧每个字符串最多有 2 个变体,例如,如果字符串是“USD”,那么有时还会存在另一个带有“LDUSD”的条目……没有“LD”的条目总是存在。
我需要应用 x[0:2]+'_'+x[2:] 但仅当该列包含 x[2:] 的完全匹配时。
必须这样做以确保更改只发生在相关条目上,因为还有各种项目在其默认名称中包含“LD”,例如 ('EGLD','LDO','SLD') 或包含当前 x 字符串 eg('TUSD','USDT')。

df['Asset'] = df['Asset'].apply(lambda x: x[0:2]+'_'+x[2:] if x[2:] in df['Asset'] else x)
之后的部分......进入......不起作用,我不知道下一步如何进行。
如何检查列 ['Asset'] 是否与 x[2:] 完全匹配?
为标题道歉我真的不知道该怎么称呼这个...
编辑大约 400 中的几个示例:
df['Asset'] = ['1INCH','AAVE','ADA','ALGO','EGLD','DASH','LDO','TUSD','USDT','LD1INCH','LDALGO','LDEGLD','LDDASH','LDLDO','LDTUSD','LDUSDT',]

我需要的:
df['Asset'] = ['1INCH','AAVE','ADA','ALGO','EGLD','DASH','LDO','TUSD','USDT','LD_1INCH','LD_ALGO','LD_EGLD','LD_DASH','LD_LDO','LD_TUSD','LD_USDT',]

最佳答案

您可以使用 str.contains() 测试是否 any()匹配 rf'^{x[2:]}$' :

df['Asset'] = df['Asset'].apply(lambda x: x[:2]+'_'+x[2:]
if df['Asset'].str.contains(rf'^{x[2:]}$', regex=True).any() else x)

对于正则表达式,添加 r使其成为原始字符串。在这种情况下,我们还添加了 f所以我们可以插值 x[2:]通过 f-string :
  • ^ - 字符串开头
  • {x[2:]} - 插值 x[2:]在 f 弦内
  • $ - 字符串结尾
  • 关于python - Pandas 检查列中 x 的子字符串,如果找到将字符串添加到 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66974363/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com