如果字符串尚未包含此值,则将值添加到字符串

Add value to string if string doesn't already contain this value

我需要在不创建 "TRC+TRC" 单元格的情况下为字符串添加值。 因此,如果它已经包含 TRC -> 什么都不添加。 怎么做?

for i in range(len(df)):
  d = str(df['description'][i]).lower()
  if df['segment'][i] == 'shopping':
    if any(TRC in d for TRC in TRC):
      if (df['landsize'][i] > 9000):
        df['class'][i] = (f"{df['class'][i]} + TRC")
        continue

还有什么其他变体可以做这件事?

df['class'][i] = (f"{df['class'][i]} + TRC")

循环根本不是 pythonic,你越是避免它们,你的代码就越好、越快、越高效。

df.loc[ (df['segment']=='shopping')
       & (df['landsize']>9000)
       & (~df['class'].str.contains(pat='TRC', na=False))
       , 'class'] += 'TRC'

我可能误解了你的问题

我相信这就是您要找的,绝对要尽可能避免 pandas 中的循环。 希望这就是你的意思:)

df['description'] = df['description'].str.lower()

df.loc[(df['segment'] == 'shopping')
   &(~df['description'].str.contains('trc')) 
   & (df['landsize'] > 9000)
   , 'class'] += "TRC"