如果字符串尚未包含此值,则将值添加到字符串
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"
我需要在不创建 "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"