[英]How to handle typeErrors when doing vectorize calculations?
可以通過numpy.select
,但是在輸出中得到混合值:
df = pd.DataFrame({
'A':[7,8,9,10,5],
'B':[1,2,3,'str',np.nan],
})
b = pd.to_numeric(df['B'], errors='coerce')
df['C'] = np.select([df['B'].isna(), b.isna()], [np.nan, 'ERROR'], default=df['A'] - b)
print (df)
A B C
0 7 1 6.0
1 8 2 6.0
2 9 3 6.0
3 10 str ERROR
4 5 NaN nan
最好是使用to_numeric
將其轉換為數值,並且僅在以后需要處理列時才減去:
b = pd.to_numeric(df['B'], errors='coerce')
df['C'] = df['A'] - b
print (df)
A B C
0 7 1 6.0
1 8 2 6.0
2 9 3 6.0
3 10 str NaN
4 5 NaN NaN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.