如何在熊猫中将df.iterrows()替换为df.apply()?

时间:2019-03-29 12:10:14

标签: python pandas

我有以下循环:

dict1 = {}
dict2 = {}
for (i, row) in df[['col1', 'col2', 'col3']].iterrows():
            dict1[row['col1']] = row['col2']
            dict2[row['col1']] = row['col3']

据我所知,这个循环真的很慢(我在数据框df中大约有7万行)。

有什么办法可以加快速度吗?我在Google上搜索了一下,他们说我应该使用df.apply()而不是.iterrows()

1 个答案:

答案 0 :(得分:6)

IIUC,使用:

m=df[['col1', 'col2', 'col3']]
dict1=m.set_index('col1')['col2'].to_dict()
dict2=m.set_index('col1')['col3'].to_dict()