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