我正在嘗試使用串列串列將行添加到資料框中。
錯誤如下: IndexError: 標量變數的索引無效。
代碼如下:
Total_List = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]]
Some_List = ['0', '1', '2', '3', '4']
first_row = {'A': [0], 'B': [0], 'C': [0]}
All_Rows = pd.DataFrame(first_row)
#Optimized_Trades
for i in range(len(Some_List)):
for j in range(len(Some_List[i])):
df_temp = { 'A': Total_List[i][j], 'B': Total_List[i][j], 'C': Total_List[i][j]}
All_Rows = All_Rows.append(df_temp, ignore_index = True)
All_Trades = All_Trades[1:]
display(All_Trades)
理想情況下,最終輸出將是:
1,4,7,10,13
2,5,8,11,14
3,6,9,12,15
uj5u.com熱心網友回復:
IIUC,您希望將first, second ... nth每個子串列的每個元素添加為資料框的行,這相當于transpose of the list of lists.
您不需要 for 回圈在 python 中執行此操作。
將 zip 與解包運算子一起使用
您可以通過幾種方式做到這一點,但一種方法是使用解包運算子進行zip *list(zip(*l))
l = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]]
lt = pd.DataFrame(zip(*l)) #<---
print(lt)
0 1 2 3 4
0 1 4 7 10 13
1 2 5 8 11 14
2 3 6 9 12 15
使用熊貓轉置
一種更簡單的方法是使用 pandas 來執行此操作,您可以簡單地使用轉置-
l = [[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15]]
lt = pd.DataFrame(l).T #<---
print(lt)
0 1 2 3 4
0 1 4 7 10 13
1 2 5 8 11 14
2 3 6 9 12 15
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/415099.html
標籤:
