2017-07-19 30 views
1

在我的一个大熊猫DataFrame中,有一列包含每个行中的字典或词典。Python Pandas DataFrame:如何处理由字典组成的列到由字符串键确定的多个列中?

例如行中的一个将含有“{‘A’:1,‘B’:2}”

我需要做一个数据帧与“A”和“b”为列或然而,许多列中包含的所有字符都有唯一的键。例如,如果一行包含“{'a':1,'b':2}”,而另一行包含“{'a':1,'c':2}”我需要创建一个DataFrame以'a','b'和'c'作为列。列名将是字典的关键字,行将包含字典的值。 DataFrame的索引将与原始的相同。

谢谢。

回答

3

我认为你可以使用DataFrame构造与values转换datanumpy array再到list

#borrowing sample from DeepSpace's answer 
df = pd.DataFrame({'data': [{'a': 1, 'b': 2}, {'a': 3, 'c': 4}]}) 
print (df) 
       data 
0 {'a': 1, 'b': 2} 
1 {'a': 3, 'c': 4} 

df1 = pd.DataFrame(df['data'].values.tolist(), index=df.index) 
print (df1) 
    a b c 
0 1 2.0 NaN 
1 3 NaN 4.0 
+0

感谢您使我的回答看起来很荒谬)。 – DeepSpace

+0

任何想法为什么熊猫(或numpy?)决定离开'1'和'3'作为整数,但是'2'和'4'成为一个浮点数? – DeepSpace

+1

,因为列中的NaN值被强制浮动。 – jezrael

相关问题