首页 > 解决方案 > 如何根据另一个数据框中的值的条件填充数据框?

问题描述

我有两个数据框:

time_start
0  1313575263
1  1313575263
2  1313575263
3  1313579775
4  1313579775 
 my_start value 
 0  1313575263 foo  
 1  1313579775 bar

我想使用 中的值df_information来填充 中的新列df_new。如果my_startindf_information匹配time_startin df_new,则使用相应value的 indf_information进行填充df_new。这是我想要的输出:

 time_start value 
 0  1313575263   foo 
 1  1313575263   foo 
 2  1313575263   foo 
 3  1313579775   bar 
 4  1313579775   bar

我想出了一种使用两个嵌套循环来做到这一点的方法,但是由于我实际上正在处理大型数据帧,因此运行需要很长时间:

import pandas as pd
import numpy as np

dict1={'time_start':[1313575263,1313575263,1313575263,1313579775,1313579775]}
dict2={'my_start':[1313575263,1313579775],'value':['foo','bar']}

df_new=pd.DataFrame.from_dict(data=dict1)
df_information=pd.DataFrame.from_dict(data=dict2)

df_new['value']=np.nan

for index_new, row_new in df_new.iterrows():
    for index_information, row_information in df_information.iterrows():  
        if row_information['my_start']==row_new['time_start']:
            df_new['value'][index_new]=df_information['value'][index_information]

有没有更有效的方法来做到这一点?在此先感谢您的帮助!

标签: pythonpandas

解决方案


推荐阅读