Python 如何在Pandas中用df.apply()替换df.iterrows()?
我有以下循环:Python 如何在Pandas中用df.apply()替换df.iterrows()?,python,pandas,Python,Pandas,我有以下循环: dict1 = {} dict2 = {} for (i, row) in df[['col1', 'col2', 'col3']].iterrows(): dict1[row['col1']] = row['col2'] dict2[row['col1']] = row['col3'] 据我所知,这个循环非常慢(我的数据帧中有大约70000行df) 有没有办法加快速度?我在谷歌上搜索了一下,他们说我应该使用df.apply()而
dict1 = {}
dict2 = {}
for (i, row) in df[['col1', 'col2', 'col3']].iterrows():
dict1[row['col1']] = row['col2']
dict2[row['col1']] = row['col3']
据我所知,这个循环非常慢(我的数据帧中有大约70000行df
)
有没有办法加快速度?我在谷歌上搜索了一下,他们说我应该使用df.apply()
而不是.iterrows()
IIUC,使用:
m=df[['col1', 'col2', 'col3']]
dict1=m.set_index('col1')['col2'].to_dict()
dict2=m.set_index('col1')['col3'].to_dict()
IIUC,使用:
m=df[['col1', 'col2', 'col3']]
dict1=m.set_index('col1')['col2'].to_dict()
dict2=m.set_index('col1')['col3'].to_dict()
请共享a您可能不需要任何循环,因为看起来您只需要将序列转换为dict。请共享a您可能不需要任何循环,因为看起来您只需要将序列转换为dict。