簡體   English   中英

python pandas dataframe列出字符串錯誤

[英]python pandas dataframe to list string error

我對pandas相對較新,現在嘗試將pandas DataFrame行轉換為字符串列表。

它運作良好,但是原始DataFrame中的字符串在列表中進行了奇怪的修改,因為某些原因由於某些原因附加了“ 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的數字是整數,對於浮點數是有效的。

DataFrame中的每一列都有一個與之關聯的特定“類型”。

通常,這通常意味着它們的類型為“字符串”,“ 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中並非如此,所有int都自動為“ long”,導致沒有L,因為它將是多余的。

因此,最后,如果您真的想將各種類型(float,int,str,取決於每一列)的列表轉換為字符串,則可以使用如下代碼:

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

但是,如果您打算使用這些數字進行某些處理,最好將它們保留為數字類型,而不是來回轉換為字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM