python pandas dataframe列出字符串错误

时间:2016-05-27 14:24:04

标签: python pandas

我对pandas相对较新,现在尝试将pandas DataFrame行转换为字符串列表。

它运行良好,但原始DataFrame中的字符串在列表中被奇怪地修改,因为有些人附加了" L"出于某种原因的角色。

非常感谢你的帮助..

S -> Aa | Bb
A -> aAb | ab
B -> aBbb | abb

事实上,我发现,附加L的数字是整数,对于它起作用的浮点数。

1 个答案:

答案 0 :(得分:0)

DataFrame中的每一列都有一个与之关联的特定“类型”。

通常这通常意味着它们的类型为“string”,“int”或“float”。

现在,您的.tolist()调用会将该行转换为列表,但不一定会将所有值的类型更改为字符串。

在控制台中键入列表时,Python使用“repr”方法查找列表的字符串表示形式。这包括放入括号并在每个元素上调用“repr”。这与将值转换为字符串略有不同,这是使用“str”方法完成的。

你可以自己测试一下:

# For regular ints, repr and str do the same thing
a = 5
str(a)  #'5'
repr(a) #'5'

# The L means it's a *long*, basically an int with a higher max-value
a = 5L
str(a)  #'5'
repr(a) #'5L'

*注意,在Python 3中并非如此,所有整数都是自动“长”的,因此没有L,因为它是多余的。

所以,最后,如果你真的想将各种类型的列表(float,int,str,取决于每一列)转换为字符串,你可以使用这样的东西:

my_list = [str(x) for x in my_list]

但是,如果您打算使用这些数字进行一些处理,最好将它们保留为数字类型,而不是来回转换为字符串。