繁体   English   中英

将字典转换为数据框

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM