【发布时间】:2021-05-14 21:22:08
【问题描述】:
我尝试从其他两个数据帧 DF1 和 DF2DF 填充一个新字段 Status /strong>。
df = pd.DataFrame({'CODE': ['REP', 'REP', 'NANQUE','NANQUE', 'AB_DEV'], 'name':['AUDI', 'AUDI', 'VW','MER','FIAT']})
df1 = pd.DataFrame({'CODE': ['REP', 'NANQUE','AB_DEV'], 'status':['SORT/QUALT', 'ECHEC','OUTBAND']})
df2 = pd.DataFrame({'name': ['AUDI', 'AUDI','AUDI','VW','VW','MER','FIAT','FIAT','FIAT'],
'status':['SORT', 'SORT','SORT','INCOM','INCOM','INCOM', 'OUTBAND','OUTBAND','OUTBAND'],
'CITY':['BOST', 'NY','WC','CH','WC','CH', 'NY','LA','CH']})
这是我的数据框DF
CODE | name
---------------
REP | AUDI
REP | AUDI
NANQUE | VW
NANQUE | MER
AB_DEV | FIAT
使用以下数据框DF1
完成检查CODE | Status
------------------
REP | SORT/QUAL
NANQUE | ECHEC
AB_DEV | OUTBAND
...
满足以下条件:
IF DF['CODE'].isin(DF1['CODE']) and DF1['Status']=='OUTBAND' :
DF['Status']== 'OUTBAND'
如果不是,则使用以下数据框 DF2
进行第二次检查name | Status | CITY
----------------------------
AUDI | SORT | BOST
AUDI | SORT | NY
AUDI | SORT | WC
VW | INCOM | CH
VW | INCOM | WC
MER | INCOM | CH
FIAT | OUTBAND | NY
FIAT | OUTBAND | LA
FIAT | OUTBAND | CH
满足以下条件:
IF DF['name'] == DF2['name']:
DF['Status']== DF2['Status']
我试图找到的最终结果
CODE | name | Status
-------------------------------
REP | AUDI | SORT
REP | AUDI | SORT
NANQUE | VW | INCOM
NANQUE | MER | INCOM
AB_DEV | FIAT | OUTBAND
我尝试了 np.wehre 但它不起作用。知道如何使它工作吗?
【问题讨论】:
-
@AMC 我试图给出一个可重复的例子,我希望它适合
-
能否以更方便的格式分享数据,以尽量减少重新创建df所需的工作量?
-
@AMC 我加了很好