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
完美的我只测试了第一个选项,效果非常好。太好了!我只测试了第一个选项,效果非常好。