2016-11-17 3 views
1

У меня возникли проблемы.колонки python pandas содержат dict

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

Вы можете использовать concat с df1, созданный с DataFrame конструктора - сначала преобразовать столбец c1 в numpy array по values, а затем 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 
Смежные вопросы