У меня есть dataframe, который содержит в основном NaN, но также словари в определенных записях. Моя цель - расширить эти словари до столбцов кадра данных и сохранить их записи по их соответствующим индексам. Это то, на что похожа небольшая часть данных.Развернуть dataframe со словарями
_id _score
query
chrM:g.146T>C NaN NaN
chrM:g.11723C>T NaN NaN NaN NaN
chrM:g.11813A>G NaN NaN
chrM:g.12140T>A NaN NaN
... ... ...
chr1:g.11976370T>G {u'ref': u'T', u'alleles': [{u'allele': u'T', ... NaN
chr1:g.12007164A>G NaN NaN
chr1:g.12007165A>G NaN NaN
До сих пор, я только что удалось подобрать ключи каждого Dict и добавить столбцы, названные с этими ключами:
s ={}
for cols in cols:
if type(data1[cols].dropna()[0]) == type(s):
cols_var = np.array(data1[cols].dropna()[0].keys())
data1 = pandas.concat([data1,pandas.DataFrame(columns=cols_var)])
Любая помощь или советы о том, как сделать это в эффективной и читаемый будет высоко оценен.
** EDIT: ** этот код:
y = pandas.Series((dbsnp.iloc[0]))
print y
однако получает что-то несколько полезным:
allele_origin unspecified
alleles [{u'allele': u'G'}, {u'allele': u'A'}]
alt A
... ...
rsid rs201327123
vartype snp
dtype: object
Постараюсь работать здесь, другой вход высоко ценится.
Можете ли вы показать полный словарь? Похоже, он вложен. Как вы хотите его расширить? – IanS
Вы правы. Он вложен, а другие столбцы также могут содержать вложенные словари. Вот этот конкретный: '{u'ref ': u'G', u'alleles ': [{u'allele': u'G '}, {u'allele': u'A '} ], u'var_subtype ': u'ts', u'allele_origin ': u'unspecified', u'dbsnp_build ': 137, u'rsid': u'rs201327123 ', u'flags': [u'ASP ', u'R3 '], u'hg19': {u'start ': 14677, u'end': 14678}, u'alt ': u'A', u'validated ': True, u'chrom': u '1', u'class ': u'SNV', u'vartype ': u'snp'} ' –
Можете ли вы проверить мое решение и посмотреть, работает ли оно для вас? – IanS