避免在Python中使用数据框进行for循环

时间:2018-11-10 23:14:34

标签: python-3.x pandas dataframe

我在Python中有两个数据框,分别名为GroupedCode(70000行3列)和ICD9(11500行27列)。我的目标是找到Code9的{​​{1}}列中GroupedCode的{​​{1}}列中的每个元素,并且每次找到匹配项时,都附加一个将ICD9CMCode的{​​{1}}列添加到名为ICD9的列表中。 我想出了一个For循环来执行此操作,但是要花很多时间才能完成。我想知道是否有更好的方法来加速for循环,甚至更好地避免它。

这是我的for循环:

TotalDiag

1 个答案:

答案 0 :(得分:0)

考虑merging这两个数据帧以保持彼此之间的匹配,然后将pandas Series下放到list。当前,您正在将numpy数组(不是单个值)或0存储到列表中。

merged_df = pd.merge(GroupedCode, ICD9, left_on='ICD9CMCode', right_on='Code9')

Freq = merged_df['TotalDiag'].tolist()

即使在多个内部联接匹配的情况下,也不要考虑unique()作为唯一值。

Freq = merged_df['TotalDiag'].unique().tolist()