有没有一种计算上更便宜的方法来替换数据帧中的名称?

问题描述

我只想在大数据框(约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_tagbool_list过滤行,然后提取第一列并修改过滤后的字符串。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...