问题描述
我只想在大数据框(约600万行)中,将满足特定条件的名称的子集添加“ -PD”。
我列出了要更改的名称:
bool_list = df_geo_clean_tag['index'].isin(lessorequalto0_ids)
然后我遍历bool_list为true的数据框以找到应替换名称的索引:
for row in range(len(df_geo_clean_tag)):
if bool_list[row] == True:
name = df_geo_clean_tag.iloc[row,0]
df_geo_clean_tag.iloc[row,0] = name + '-PD'
,但是这花费了非常长的时间(目前等待了一个多小时)。 有没有一种计算成本更低的方法来做到这一点?
解决方法
这应该比循环快得多:
df_geo_clean_tag.loc[bool_list,df.columns[0]] += '-PD'
此代码df_geo_clean_tag
用bool_list
过滤行,然后提取第一列并修改过滤后的字符串。