3 回答
TA贡献1785条经验 获得超8个赞
国际自然保护联盟
df.apply(pd.to_numeric, errors='coerce').fillna(-1, downcast='infer') # comment by Pir
Out[480]:
col col2
0 1 1
1 -1 1
2 3 -1
3 4 1
4 -1 2
5 2 -1
6 3 2
或类似的东西
df.mask(df.applymap(ord)>64,-1)
Out[479]:
col col2
0 1 1
1 -1 1
2 3 -1
3 4 1
4 -1 2
5 2 -1
6 3 2
TA贡献1824条经验 获得超5个赞
我们可以使用 df,然后使用 with 将无效数字设置为 ,然后使用 -1 ,然后 unstack() 返回到原始形状,最后在必要时使用转换为 int:stack()pd.to_numericerrors = 'coerce'NaNfillnaastype(int)
pd.to_numeric(df.stack(),errors='coerce').fillna(-1).unstack().astype(int)
col col2
0 1 1
1 -1 1
2 3 -1
3 4 1
4 -1 2
5 2 -1
6 3 2
TA贡献1798条经验 获得超7个赞
可以使用该函数将数据框中与 字符对应的值替换为 。df.replace-1
试试这个:
df = df.replace(r"[A-Za-z]", -1, regex=True)
print(df)
输出:
col1 col2
0 1 1
1 -1 1
2 3 -1
3 4 1
4 -1 2
5 2 -1
6 3 2
添加回答
举报