【发布时间】:2017-05-27 07:04:38
【问题描述】:
我有两个数据框 - df1 (800k rows) and df2 (3 rows).
如果df1_A的值在df2_A and df2_B之间,则df2_C的值应该返回到df1_C。
for index1, row1 in df1.iterrows():
for index2, row2 in df2.iterrows():
if (row1['df1_A'] >= row2['df2_A']) & (row1['df1_A'] <= row2['df2_B']):
row1['df1_C'] = row2['df2_C']
最简单易读的编写方法是使用两个 for 循环,但是因为它已经循环了大约 240 万次,所以我的程序的性能降低了。有没有更好的方法来完成我的任务。
【问题讨论】:
-
向我们展示您的循环代码。当您说它们的长度不同时,我不知道 应将 df2_C 的值返回给 df1_C 是什么意思。
-
添加了代码。这是我的逻辑,但由于它必须迭代的循环数量而感到困惑。
标签: python pandas join dataframe conditional-statements