pandas数据帧中有一个apply
方法,可以应用一些同步函数,例如:
import numpy as np
import pandas as pd
def fun(x):
return x * 2
df = pd.DataFrame(np.arange(10), columns=['old'])
df['new'] = df['old'].apply(fun)
如果有一个需要应用异步函数fun2
的类似操作,最快的方法是什么:
import asyncio
import numpy as np
import pandas as pd
async def fun2(x):
return x * 2
async def main():
df = pd.DataFrame(np.arange(10), columns=['old'])
df['new'] = 0
for i in range(len(df)):
df['new'].iloc[i] = await fun2(df['old'].iloc[i])
print(df)
asyncio.run(main())
fun2()
在df['old']
Series 上的结果列表。@Henry 的答案只是将该列表分配给原始df
中的新列(Series)。 - Joey Baruch