我有一个带有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'
当整数乘以字符串时,我希望数据框用NaN填充该点。我检查了文档,没有内置的默认参数。有什么建议吗?
答案 0 :(得分:1)
添加此代码可将您的数据框强制转换为数字表,并用NaN替换字符串(除非它们是可以转换为"5.0"
之类的数字的字符串)
df = df.apply(pd.to_numeric, errors='coerce')
然后随便做什么。