Python 有没有一种方法可以使循环中更改数据帧的速度更快?
在这段代码中,我的测试表明最后一行使它非常慢,非常慢。它基本上是逐行插入一个新列。也许我应该将所有的“新名称”存储到一个列表中,并在循环之外更新dfPython 有没有一种方法可以使循环中更改数据帧的速度更快?,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
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)