我想将一些数据从dfb
复制到dfa
,以替换dfa
中的某些行。
下面是代码。
除了使用for循环(这很慢)之外,代码没有任何问题。
还有其他更快,更有效的方法吗?
谢谢。
import pandas as pd
dfa = pd.read_csv('data1.csv')
dfb = pd.read_csv('data2.csv')
id = dfa.loc[(dfa['sex'] == 'M') & (dfa['info'] == 'None'), 'id']
id_copy = dfb.loc[(dfb['id'].isin(id))&(dfb['info']!='None'), 'id']
for i in id_copy.values:
dfa.loc[dfa['id']==i, 'info'] = dfb.loc[dfb['id']==i, 'info']
答案 0 :(得分:0)
您可以尝试使用map
并将其分配回
s=dfa.id.map(dfb.set_index('id').info)
dfa.loc[s.notnull(),'info']=s