Python Pandas 数据帧转换为列表字符串

2024-04-27 00:43:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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,它是有效的。。在


Tags: 数据字符串indataframepandas列表fordata
1条回答
网友
1楼 · 发布于 2024-04-27 00:43:34

数据帧中的每一列都有一个与之相关联的特定“类型”。在

通常这意味着它们的类型是“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'

*请注意,Python3并不是这样的所有int都是自动“long”的,因此没有L,因为它是冗余的。在

因此,最后,如果您真的想将各种类型的列表(float、int、str,具体取决于每一列)转换为字符串,可以使用如下方法:

^{pr2}$

但是,如果计划使用这些数字进行一些处理,那么最好将它们保留为其数值类型,而不是来回转换为字符串。在

相关问题 更多 >