[英]Python list of lists to dataframe - AssertionError
我在python中有一個列表列表。 我試圖將其轉換為數據幀。 例如=
foo = [
[1,2,3...],
[a,b,c...],
[aa,bb,cc...]
]
這3個列表中的每一個都包含100個元素。 我嘗試了以下轉換為數據幀 -
df = pandas.DataFrame(foo, columns=headers) // where headers is ['id', 'fname', 'lname']
df = pandas.DataFrame(foo, columns=[foo[0], foo[1], foo[2]])
但是我收到這個錯誤 -
AssertionError: 3 columns passed, passed data had 100 columns
您可以嘗試以下方法。 該錯誤來自於使用pandas.DataFrame
構造函數時每個子列表被解釋為一行的事實。 您可以從標題和列表中創建字典:
import pandas as pd
headers = ['id', 'fname', 'name']
df = pd.DataFrame(dict(zip(headers, foo)))
df
#fname id lname
#0 a 1 aa
#1 b 2 bb
#2 c 3 cc
#3 d 4 dd
#4 e 5 ee
或轉置列表:
df = pd.DataFrame(list(zip(*foo)), columns=headers)
df
# id fname lname
#0 1 a aa
#1 2 b bb
#2 3 c cc
#3 4 d dd
#4 5 e ee
您還可以嘗試DataFrame.from_records
轉置Dataframe:
In [17]: df = pd.DataFrame.from_records(foo).T
In [18]: df
Out[18]:
0 1 2
0 1 a aa
1 2 b bb
2 3 c cc
In [19]: df.columns = ['id', 'fname', 'lname']
In [20]: df
Out[20]:
id fname lname
0 1 a aa
1 2 b bb
2 3 c cc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.