如何修复 pandas 数据框中的数据类型错误 float 和 str

How to fix Datatype error float and str in pandas dataframe

in pandas DataFrame 我想创建一个条件列。如果 a 大于 b,则新列标志将为 1,否则为 0

我在下面使用,但出现 TypeError: '>' not supported between instances of 'float' and 'str'

df['flag'] =  df['a'] >  df['b'], 1, 0

我该如何解决这个错误?

A b flag
24.43048 22 1
29.0 0
0 0
70.2323 70 1
39.0 0 1
0 0

数据:

df = pd.read_csv(StringIO(d)).replace(np.nan,'').astype(str)
df
df.dtypes

输出:

计算标志:

for i,x in df.iterrows():
    try:
        df.loc[i,'Flag'] = 1 if float(x[0]) > float(x[1]) else 0
    except ValueError:
        df.loc[i,'Flag'] = 0
df
df.dtypes