new*_*bie 4 python dataframe pandas
我在python中有一个列表列表.我试图将其转换为数据帧.例如=
foo = [
[1,2,3...],
[a,b,c...],
[aa,bb,cc...]
]
Run Code Online (Sandbox Code Playgroud)
这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]])
Run Code Online (Sandbox Code Playgroud)
但是我收到这个错误 -
AssertionError: 3 columns passed, passed data had 100 columns
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下方法.该错误来自于使用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
Run Code Online (Sandbox Code Playgroud)
或转置列表:
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1547 次 |
最近记录: |