我有一个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']}
如何解决这个问题?
答案 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