熊猫融化了大小不一的清单?

时间:2019-02-15 17:54:04

标签: python pandas

我有一个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']}

如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

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

将熊猫作为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

答案 1 :(得分:2)

您可以从每一列构建一个数据框,并合并它们,然后融化较大的数据框并删除na。

customer_orders