我有两个多列的数据框。
我想比较 df1['id'] 和 df2['id'] 并返回一个具有匹配值的列 ["correct_id"] 的新 df。例子:
df1:
id Name
0 123 Paul
1 c345 Jean
2 0 Alicia
3 345 Jennifer
df2
id Name
0 123 Paul
1 980 Jean
2 0 Alicia
3 945 Jennifer
这是我的代码:
import pandas as pd
df1=pd.DataFrame({'id':['123','c345','0','345'],
'Name':['Paul','Jean','Alicia','Jennifer'],
})
print(df1)
df2 = pd.DataFrame({'id':[123,980,0,945],
'Name':['Paul','Jean','Alicia','Jennifer'],})
print(df2)
df1['id'] = pd.to_numeric(df1['id'], errors='coerce')
df1["correct_id"] = (df1["id"].isin(df2["id"]) * df1["id"]).replace(0, "N/A")
print(df1)
我得到了作为输出:
id Name correct_id
0 123.0 Paul 123.0
1 NaN Jean NaN
2 0.0 Alicia N/A
3 345.0 Jennifer N/A
预期输出:
id Name correct_id
0 123 Paul 123
1 c345 Jean N/A
2 0 Alicia 0
3 345 Jennifer N/A
我该如何解决这个问题
答案 0 :(得分:0)
你可以试试这个:
bool hasThrownError = false;
Widget buildWidgetTree() {
return hasThrownError
? Text("This is where you can show your error illustration")
: Text("This is wher you can show your regular view");
}