[英]Converting dictionary to dataframe
在下面的代码中,我定义了一个字典,然后将其转换为数据框
my_dict = {
'A' : [1,2],
'B' : [4,5,6]
}
df = pd.DataFrame()
df = df.append(my_dict, ignore_index=True)
输出是一个 [1 rows x 2 columns] 数据框,看起来像
A B
0 [1,2] [4,5,6]
但是,我想将其重塑为
A B
0 1 4
1 2 5
2 6
我该如何为此目的修复代码?
您可以使用pandas.Series.explode
如下
import pandas as pd
my_dict = {
'A' : [1,2],
'B' : [4,5,6]
}
df = pd.DataFrame()
df = df.append(my_dict, ignore_index=True)
df = df.apply(lambda x:x.explode(ignore_index=True))
print(df)
输出
A B
0 1 4
1 2 5
2 NaN 6
我使用ignore_index=True
对每一列应用explode,以防止重复索引。
如果您不介意稍微更改代码,这将为您提供所需的结果
my_dict = {
'A' : [1,2,''],
'B' : [4,5,6]
}
df = pd.DataFrame(my_dict)
df
另一种方法是:
df = pd.DataFrame.from_dict(my_dict, 'index').T
print(df)
输出:
A B
0 1.0 4.0
1 2.0 5.0
2 NaN 6.0
试试这个。 您需要将字典分配给数据框。 我已经运行过了。 它应该给你你想要的输出。 不要使用附加。 是将一个数据帧附加到另一个数据帧
import pandas as pd
my_dict = {
'A' : [1,2,''],
'B' : [4,5,6]
}
df = pd.DataFrame(data=my_dict)
#df = df.append(my_dict, ignore_index=True)
print(df)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.