Как извлечь значения столбца словаря во фрейме данных pandas

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

Я работаю над форматом файла VCF, после получения данных в pandas dataframe я получаю вывод ниже.

Код

 df1=df['info_dict']
print df1
  

вывод-

 chr1  2337185                                {u'END': 2337193}
      2337194 {u'IDS': u'1026660,1026661', u'CUR': u'UNKNOWN'}
      2337195                                {u'END': 2337293}
      2337903                                {u'END': 2338125}
      2338126{u'IDS': u'652130,652129', u'CUR': u'KNOWN_BEN...
      2338127                                {u'END': 2338414}
      2339871                                {u'END': 2340199}
  

Я хочу получать только значения идентификаторов, которые находятся в третьем столбце.

Ожидаемый результат:

 chr1  2337194 '1026660,1026661'
      2338126 '652130,652129'
  

Ответ №1:

Используйте .get для получения значения из dict со значением по умолчанию, None если не совпадает, последний раз удалите None s с помощью Series.dropna :

 s = df['info_dict'].apply(lambda x: x.get('IDS')).dropna()
print (s)
chr1  2337194    1026660,1026661
      2338126      652130,652129
Name: col, dtype: object