簡體   English   中英

將特定字符串(數字)從列表列表轉換為浮點數

[英]Converting specific strings (numbers) from a list of lists to floats

所以我有一個包含字符串的列表列表:

[['10.00', 'name1'], ['8.50', 'name2'], ['7.50', 'name3'], ['15.00', 'name4'], ['12.50', 'name5'], ['9.50', 'name6']]

我要做的是僅將所有列表中的數字轉換為浮點數以獲得如下結果:

[[10.00, 'name1'], [8.50, 'name2'], [7.50, 'name3'], [15.00, 'name4'], [12.50, 'name5'], [9.50, 'name6']]

有什么辦法可以嗎?

如果數字總是在同一個地方,你可以做這樣的事情來快速解決

_list = [['10.00', 'name1'], ['8.50', 'name2'], ['7.50', 'name3'], ['15.00', 'name4'], ['12.50', 'name5 '], ['9.50', 'name6']]

_list = [[float(n[0]), n[1]] for n in _list]

如果第一個元素始終是數字,則可以使用列表推導。

lst = [['10.00', 'name1'], ['8.50', 'name2'], ['7.50', 'name3'], ['15.00', 'name4'], ['12.50', 'name5'], ['9.50', 'name6']]

lst = [[float(i[0]), i[1]] for i in lst]

與發布的 nepdavis 相同,但使用 lambda 表達式:3

lst = [['10.00', 'name1'], ['8.50', 'name2'], ['7.50', 'name3'], ['15.00', 'name4'], ['12.50', 'name5'], ['9.50', 'name6']]

lst = map(lambda innerList: [float(innerList[0]), innerList[1]], lst)

如果您不想依賴第一個值是數字,則可以嘗試進行轉換,如果失敗則返回原始值。

def to_float(n):
    try:
        return float(n)
    except ValueError:
        return n


lst = [['10.00', 'name1'], ['8.50', 'name2'], ['7.50', 'name3'], ['15.00', 'name4'], ['12.50', 'name5'], ['9.50', 'name6']]

lst = [[to_float(n) for n in N] for N in lst]

print(lst)

如果數據格式正確,你可以做這樣的事情

import pandas as pd
lists = [['10.00', 'name1'], ['8.50', 'name2'], ['7.50', 'name3'], ['15.00', 'name4'], ['12.50', 'name5'], ['9.50', 'name6']]

listdf = pd.DataFrame(lists)

listdf[0] = listdf[0].astype(float)

暫無
暫無

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

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