[英]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.