将列与整数和字符串相乘

Multiply columns with both integers and strings

我有一个包含 50 多列的大型 DataFrame。我想将每一列乘以另一列,但是数据中存在一些字符串。

df[df.loc[:, df.columns != "Total Balance"].columns].multiply(df["Total Balance"], axis="index")

df.loc[:, df.columns != "Total Balance"操作是为了让我不用自己乘以总余额。

我的问题是 DataFrame 中的一些元素是字符串,因此我收到错误:

TypeError: can't multiply sequence by non-int of type 'float'

当一个整数乘以一个字符串时,我希望 Dataframe 用 NaN 填充那个位置。我检查了文档,没有内置的默认参数。有什么建议吗?

添加它以将您的数据框强制转换为数字 table,并将字符串替换为 NaN(除非它们是可以转换为数字的字符串,例如 "5.0"

df = df.apply(pd.to_numeric, errors='coerce')

那就随心所欲吧