Skip to main content
 首页 » 编程设计

python之Pandas 与不同大小的列表融为一体

2025年05月04日22emanlee

我有一个 dict,我想将其融入 pandas DataFrame。

d = {'a':['1','2','3'], 'b':['cat','dog','bird'], 'c':['75','23','49']} 

当所有列表的长度相等时,此方法有效,我得到了所需的输出。

pd.DataFrame(d).melt() 

输出:

 variable   value 
        0   a   1 
        1   a   2 
        2   a   3 
        3   b   cat 
        4   b   dog 
        5   b   bird 
        6   c   75 
        7   c   23 
        8   c   49 

但是,当列表长度不等时,这会失败,例如:

d = {'a':['1','2','3','4'], 'b':['cat','dog','bird'], 'c':['75','23','49']} 

我怎样才能解决这个问题?

请您参考如下方法:

您可以使用orient 方法使用Dataframe.from_dict . Orient 允许将键用作数据框中的行。因此,在创建数据框后,您可以进行简单的转置,以按照您想要的格式获取它。然后只需将 na 放入数据框中即可获得最终数据框。

将 pandas 导入为 pd 将 numpy 导入为 np

d = {'a': ['1', '2', '3', '4'], 'b': ['cat', 'dog', 'bird'], 'c': ['75', '23', '49']} 
 
e = pd.DataFrame.from_dict(d,orient='index') 
e = e.T 
e = e.melt() 
e = e.dropna() 
print(e) 

输出

       variable value 
0         a     1 
1         a     2 
2         a     3 
3         a     4 
4         b   cat 
5         b   dog 
6         b  bird 
8         c    75 
9         c    23 
10        c    49