*我是Python和Pandas的新手
我需要做以下
我有2个DataFrame,我们称它们为df1和df2
df1
Index Req ID City_Atlanta City_Seattle City_Boston Result
0 X 1 0 0 0
1 Y 0 1 0 0
2 Z 0 0 1 1
df2
Index Req_ID City
0 X Atlanta
1 Y Seattle
2 Z Boston
我想在df2中添加一个名为result的列,如果df1.result = 0,则df2.result = False,如果df1.result = 1,则df2.result = True。
最终结果应该像 df2
Index Req_ID City result
0 X Atlanta False
1 Y Seattle False
2 Z Boston True
我也不是要问有关Stack Overflow的问题,所以请原谅任何常见的错误。
答案 0 :(得分:3)
考虑Req ID
是匹配密钥,并且df的长度不相同,可以使用:
df2['Result'] = df2.Req_ID.map(dict(zip(df['Req ID'],df.Result))).astype(bool)
0 False
1 False
2 True
如果长度相等,则可以使用@aws_apprentice的上述溶胶
答案 1 :(得分:2)
您可以apply
将bool
设为0,1。
df2['Result'] = df1['Result'].apply(bool)
您还可以map
值字典。
df2['Result'] = df1['Result'].map({0: False, 1: True})
答案 2 :(得分:1)
假设它们的长度相同:
df2['Result'] = df1['Result']==1