Python 使用不同长度的值从字典创建数据帧

Python 使用不同长度的值从字典创建数据帧,python,pandas,dataframe,dictionary,Python,Pandas,Dataframe,Dictionary,因此,我希望从字典中创建一个数据帧,类似于以下内容: d = {A: ['cat','dog','zebra'], B: ['frog,'lion'], C: ['snake','cat','ant','bird','turtle'], D: ['sloth']} 我希望数据帧看起来像这样: Col1 Col2 Col3 Col4 Col5 Col6 A 'cat' 'dog' 'zebra' na na B 'f

因此,我希望从字典中创建一个数据帧,类似于以下内容:

d = {A: ['cat','dog','zebra'],
     B: ['frog,'lion'],
     C: ['snake','cat','ant','bird','turtle'],
     D: ['sloth']}
我希望数据帧看起来像这样:

Col1   Col2   Col3   Col4   Col5   Col6
 A    'cat'  'dog'  'zebra'  na     na
 B    'frog' 'lion'   na     na     na
 C    'snake' 'cat'  'ant'  'bird'  'turtle'
 D    'sloth'  na      na    na     na

有什么想法吗?谢谢大家!

使用列表理解为嵌套列表添加字典键,传递到
DataFrame
构造函数并添加:

或与“将索引转换为列”一起使用,然后设置新列名称:

df = pd.DataFrame.from_dict(d, orient='index').reset_index()
df.columns = [f'col{x}' for x in range(1, len(df.columns) + 1)]
print (df)
  col1   col2  col3   col4  col5    col6
0    A    cat   dog  zebra  None    None
1    B   frog  lion   None  None    None
2    C  snake   cat    ant  bird  turtle
3    D  sloth  None   None  None    None      
如果希望从
col1
开始,可以使用带有自定义功能的
rename

f = lambda x: f'col{x+1}'
df = pd.DataFrame([[k,] + v for k, v in d.items()]).rename(columns=f)
print (df)
  col1   col2  col3   col4  col5    col6
0    A    cat   dog  zebra  None    None
1    B   frog  lion   None  None    None
2    C  snake   cat    ant  bird  turtle
3    D  sloth  None   None  None    None

使用列表理解为嵌套列表添加字典键,传递到
DataFrame
构造函数并添加:

或与“将索引转换为列”一起使用,然后设置新列名称:

df = pd.DataFrame.from_dict(d, orient='index').reset_index()
df.columns = [f'col{x}' for x in range(1, len(df.columns) + 1)]
print (df)
  col1   col2  col3   col4  col5    col6
0    A    cat   dog  zebra  None    None
1    B   frog  lion   None  None    None
2    C  snake   cat    ant  bird  turtle
3    D  sloth  None   None  None    None      
如果希望从
col1
开始,可以使用带有自定义功能的
rename

f = lambda x: f'col{x+1}'
df = pd.DataFrame([[k,] + v for k, v in d.items()]).rename(columns=f)
print (df)
  col1   col2  col3   col4  col5    col6
0    A    cat   dog  zebra  None    None
1    B   frog  lion   None  None    None
2    C  snake   cat    ant  bird  turtle
3    D  sloth  None   None  None    None

完美的我只测试了第一个选项,效果非常好。太好了!我只测试了第一个选项,效果非常好。