[英]Substitute values from one pandas data frame to another based on condition
[英]Substitute the values of one python pandas dataframe column by values from another based on a condition
import pandas as pd
import numpy as np
dt=pd.DataFrame({'schoolNum':['12','13','14','13'],'oldDistrict':['A','B', 'C','B'],'newDistrict':['F',' ','G',' ']})
dt=pd.DataFrame({'schoolNum':['12','13','14','13'],'oldDistrict':['A','B', 'C','B'],'newDistrict':['F','B','G','B']})
我试过了:
dt.ix[dt['oldDistrict']=='13', 'newDistrict']=dt.oldDistrict
但是我收到一条有关轴的错误消息。
您可以将np.nan替换为空白,然后使用Combine_first
dt = dt.replace({' ': np.nan})
dt['newDistrict'] = dt['newDistrict'].combine_first(dt['oldDistrict'])
返回
newDistrict oldDistrict schoolNum
0 F A 12
1 B B 13
2 G C 14
3 B B 13
两件事情:
您要使用.loc而不是.ix:
dt.loc[<condition>, <column(s) returned>]
“ oldDistrict”的值不等于“ 13”-在“ schoolNum”中。 因此,您想要的全部是:
dt.loc[dt['schoolNum']=='13', 'newDistrict'] = dt['oldDistrict']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.