2017-04-16 80 views
-1

我使用Spark ALS算法来生成建议,它需要用户和产品字段为整数。我将这些数据作为CSV字符串引入这些字段中。在为算法中的每个用户生成输出后,将这些转换为整数然后再返回的最简单方法是什么?输出的格式为:将这些数据帧字符串字段转换为整数并返回的最简单方法是什么?

[评分(用户= 16,产品= 7,等级= 0.9847078722254077),评分(用户= 16,产品= 19,评分= 0.9756248870987353)]

+0

对不起,我应该澄清,我的输入数据串字段具有字母数字字符,如本实施例中的行(字段是用户标识,产品等级(这已经是一个整数)): 74RTU,产品X,15 – ScottEdwards2000

+0

顺便说一句,我还需要关于如何从上面的结构(每个用户列表中嵌入了Rating对象?)将其转换回CSV的建议 - 我应该将每个用户的结果附加到某个结构中,然后如何转换该结构以这种格式显示为CSV:用户ID,产品,评分) – ScottEdwards2000

+0

我建议您通过编辑并“准确地”显示您的问题(显示问题的简化示例数据),然后显示您的问题输入中的数字字母组合,以及由什么尝试解决方案导致的问题。 – alexis

回答

0

由于我们不” t知道数据的形式,假设您可以一次完成一个数字的转换,也就是说k是一个字符串的数字。

>>> k = '15' 
>>> type (k) 
<type 'str'> 
>>> j = int(k) 
>>> type (j) 
<type 'int'> 
>>> z = str(j) 
>>> type(z) 
<type 'str'> 
>>> (k,j,z) 
('15', 15, '15') 
+0

对不起,我应该澄清,我有字母数字字符 - 见上面 – ScottEdwards2000

0

最简单的方法是让熊猫读取csv文件;它会自动将数字字段转换为数字。由于您不必执行任何操作(除非您想覆盖某些列的默认类型),因此很难被击败。

df = pd.DataFrame.from_csv("products.csv") 

您也可以通过使用df.to_csv()来写出您的数据来颠倒过程。

+0

对不起,我应该澄清,我有字母数字字符 - 见上面 – ScottEdwards2000

+0

我建议你“澄清”你的问题,通过编辑它并显示具体的数据类型,你想用输入中的数字字母组合来完成什么,以及它是什么问题导致什么尝试解决方案。 – alexis

+0

显示问题的示例数据将是最好的解释。 – alexis

相关问题