用整数和字符串乘以列

时间:2019-07-23 20:19:27

标签: python pandas dataframe multiple-columns multiplying

我有一个带有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填充该点。我检查了文档,没有内置的默认参数。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

添加此代码可将您的数据框强制转换为数字表,并用NaN替换字符串(除非它们是可以转换为"5.0"之类的数字的字符串)

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

然后随便做什么。