如何将一栏除以另一零并str安全? 由于某些原因,我不想创建没有零和str的新“ A”和“ B”列。如果无法进行划分,我想得到无。
for f in ./subdir/*.png; do
display $f &
done
我尝试:
df = pd.DataFrame({'A': [0, None, 2, 1 ,5], 'B': [1, 3,'', 'cat', 4]})
实际上,这可行,但是也许还有更优雅的方法?
df['C'] = df['B'].divide(df['A'], fill_value=None) # error with zero devision
答案 0 :(得分:1)
使用pd.to_numeric
来强制非数字类型:
import pandas as pd
import numpy as np
df['C'] = pd.to_numeric(df['B'], errors='coerce').divide(pd.to_numeric(df['A'], errors='coerce'))
# A B C
#0 0.0 1 inf
#1 NaN 3 NaN
#2 2.0 NaN
#3 1.0 cat NaN
#4 5.0 4 0.8
如果您不希望np.inf
,那么:
df['C'] = df.C.replace(np.inf, np.NaN)