Python 如何将数据帧的两列相乘(行相乘)并将结果存储在新列中?
命令Python 如何将数据帧的两列相乘(行相乘)并将结果存储在新列中?,python,python-3.x,pandas,Python,Python 3.x,Pandas,命令 df_main['Ranking']=df_main['porsity']*['personality']给出- TypeError:无法将序列与'str'类型的非int相乘 附件HD图片()包含更多信息。我的代码片段位于i.stack.imgur.com/ehqF5.png) 更多信息:首先,您需要将两列的列类型转换为浮点数(否则无法将它们相乘)。您可以按如下方式执行此操作: df_main[['Porosity', 'Permeability']] = df_main[['Porosi
df_main['Ranking']=df_main['porsity']*['personality']
给出-
TypeError:无法将序列与'str'类型的非int相乘
附件HD图片()包含更多信息。我的代码片段位于i.stack.imgur.com/ehqF5.png)
更多信息:首先,您需要将两列的列类型转换为浮点数(否则无法将它们相乘)。您可以按如下方式执行此操作:
df_main[['Porosity', 'Permeability']] = df_main[['Porosity', 'Permeability']].astype(float)
然后可以通过乘法定义新列:
df_main['Ranking'] = df_main['Porosity']*df_main['Permeability']
您是否尝试过
df_main['Ranking']=df_main['porsity']*df_main['personality']
?我不确定是否需要.astype(float)
步骤。我想问题是他们试图用一个只包含一个字符串的元素列表乘以该列。@SethMMorton在问题中的imgur图中,乘积的语法似乎是正确的。当我尝试Miriam答案的正确形式时,我得到以下错误值错误:无法将字符串转换为浮点值:“12.863486 2'@Czar.Wolfgang”,基于错误“值错误:无法将字符串转换为浮点值:“12.863486 2”您在两列中的某一列中有值“12.863486 2”“。这确实不能转换为浮点,因为它不是实数,因为在2之前有一个空格。您需要决定如何处理这些非数字条目。您不能只将非数字相乘。你需要决定它是否是一个nan,或者你是否想把它转换成浮点数。哦,是的,我查过了。你是对的,我不认为他们是南人,你知道怎么把这些价值转换成浮动吗?