我有一個熊貓系列串列:
instaList =
[Bill 0.09
Andy 12.89
John 27.27
Name: 5866, dtype: object,
Bettia 0.32
Tom -10
Levis 2
Name: 4848, dtype: object,
Shawn 4.61
Tony 3.68
Claude 0.69
Name: 7448, dtype: object]
我想將它轉換成一個字典串列,其中串列中的名稱(例如“Bill”)是來自鍵“name”的值,而數字(例如 0.09)是來自鍵“value”的值:
names = [
{"name":"Bill","value":0.09},
{"name":"Andy","value":12.88},
{...}
]
我嘗試了不同的事情:
names = []
attributesDicts = {"name":"","value":""}
for insta in instaList:
for index, value in insta.iteritems():
attributesDicts["name"] = index
attributesDicts["value"] = str(value)
names.append(attributesDicts)
但我得到了重復項或只是最后一個系列條目中的最后一個資料。
如果我列印 attributesDicts,我會得到正確的格式,但是如果我嘗試將它附加到一個串列中,它會給我重復項或只是最后一個條目。你會怎么做?
非常感謝。
uj5u.com熱心網友回復:
問題是您創建了一個字典“attributesDicts”,然后將參考傳遞給串列。然后,您修改同一個字典,因為每次迭代的 dict 參考都是相同的。
您應該實體化 for 中的 dict:
for insta in instaList:
for index, value in insta.iteritems():
attributesDicts = {"name": index, "value": str(value)}
names.append(attributesDicts)
uj5u.com熱心網友回復:
import pandas as pd
instaList = [pd.Series(name=5866, data=[['Bill', 0.09], ['Dan', 0.01], ['Lucia', 12.89]]),
pd.Series(name=5866, data=[['Bettia', 0.29], ['Tom', 2.54], ['Tony', 4.89]])]
names = []
for pdseries in instaList:
for i in pdseries.index:
names.append({'name': pdseries[i][0], 'value': pdseries[i][1]})
print(names)
或作為單襯
import pandas as pd
instaList = [pd.Series(name=5866, data=[['Bill', 0.09], ['Dan', 0.01], ['Lucia', 12.89]]),
pd.Series(name=5866, data=[['Bettia', 0.29], ['Tom', 2.54], ['Tony', 4.89]])]
names = [{'name': pdseries[i][0], 'value': pdseries[i][1]} for i in pdseries.index for pdseries in instaList]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/327225.html
上一篇:根據物件id更新串列中的物件
下一篇:如何在回圈中合并兩個串列?
