我对pandas比较陌生,现在尝试将pandas数据帧行转换为字符串列表。在
它工作得很好,但是原始数据帧中的字符串在列表中被奇怪地修改了,因为一些字符串出于某种原因附加了一个“L”字符。在
我非常感谢你的帮助。。在
>>data=pd.DataFrame(Data)
>>for r in data.iterrows():
>> r[1].tolist()
>>r[1]
a 16593
b 15
c 179.069
d 110000
e 5906
Name: 0, dtype: object
>>r[1].tolist()
[16593L, 15.0, 179.068851, 110000.0, 5906L]
事实上,我发现,附加在L后面的数字是整数,对于float,它是有效的。。在
数据帧中的每一列都有一个与之相关联的特定“类型”。在
通常这意味着它们的类型是“string”、“int”或“float”。在
现在,您的.tolist()调用将行转换为一个列表,但它不一定将所有值的类型更改为字符串。在
在控制台中键入列表时,Python使用“repr”方法来查找列表的字符串表示形式。这涉及到在括号中,并在每个元素上调用“repr”。这与使用“str”方法将值强制转换为字符串稍有不同。在
你可以自己测试一下:
*请注意,Python3并不是这样的所有int都是自动“long”的,因此没有L,因为它是冗余的。在
因此,最后,如果您真的想将各种类型的列表(float、int、str,具体取决于每一列)转换为字符串,可以使用如下方法:
^{pr2}$但是,如果计划使用这些数字进行一些处理,那么最好将它们保留为其数值类型,而不是来回转换为字符串。在
相关问题 更多 >
编程相关推荐