Python 有没有一种方法可以使循环中更改数据帧的速度更快?

Python 有没有一种方法可以使循环中更改数据帧的速度更快?,python,pandas,dataframe,Python,Pandas,Dataframe,在这段代码中,我的测试表明最后一行使它非常慢,非常慢。它基本上是逐行插入一个新列。也许我应该将所有的“新名称”存储到一个列表中,并在循环之外更新df for index, row in df.iterrows(): print(index) name = row['name'] new_name = get_name(name) row['new_name'] = new_name df.loc[inde

在这段代码中,我的测试表明最后一行使它非常慢,非常慢。它基本上是逐行插入一个新列。也许我应该将所有的“新名称”存储到一个列表中,并在循环之外更新df

    for index, row in df.iterrows():
        print(index)

        name = row['name']
        new_name = get_name(name)
        row['new_name'] = new_name

        df.loc[index] = row
.apply
不是最佳实践,但我不确定这里是否有更好的实践。

用于处理列的每个值的函数,速度更快,如
iterrows

df['new_name'] = df.apply(lambda x: get_name(x) if x.name == 'name' else x)
如果想要提高性能,则有必要在可能的情况下更改功能,但这取决于功能

df['new_name'] = df['name'].apply(get_name)