2016-11-17 101 views
1

我遇到了一些麻烦。python熊猫列包含字典

import pandas 
df=pandas.DataFrame([[{'a':1,'b':2},3,3],[{'a':2,'b':4},6,5]],columns=['c1','c2','c3']) 
print df 

        c1 c2 c3 
0 {u'a': 1, u'b': 2} 3 3 
1 {u'a': 2, u'b': 4} 6 5 

我想要得到的结果是这样的:

b c3 
0 2 3 
1 4 5 

我尝试使用df.loc [:[ 'C1', 'C3']。但我不知道下一步该怎么做。 非常感谢

回答

3

您可以使用concatDataFrame构造函数创建df1 - 首先由valuesc1转换为numpy array再到list

df=pd.DataFrame([[{'a':1,'b':2},2,3],[{'a':2,'b':4},4,5]],columns=['c1','c2','c3']) 
df1 = pd.DataFrame(df.c1.values.tolist()) 
print (df1) 
    a b 
0 1 2 
1 2 4 

print (pd.concat([df1[['b']], df[['c3']]], axis=1)) 
    b c3 
0 2 3 
1 4 5