ほとんどのNaNを含むデータフレームがありますが、特定のエントリには辞書もあります。私の目標は、これらの辞書をデータフレームの列に展開し、それぞれのインデックスにエントリを保持することです。 これは、データフレームの小さな部分の外観です。辞書でデータフレームを展開する
_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
はこれまでのところ、私はちょうど、各辞書のキーを選んで、これらのキーと名前の列を追加するために管理してきました:
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:**このコード:
allele_origin unspecified
alleles [{u'allele': u'G'}, {u'allele': u'A'}]
alt A
... ...
rsid rs201327123
vartype snp
dtype: object
私はここから作業をしてみてくださいよ、他の入力がはるかに高く評価されています
y = pandas.Series((dbsnp.iloc[0]))
print y
しかし多少役に立つ何かを取得します。
完全な辞書を表示できますか?それは入れ子になっているようです。どのようにそれを正確に拡大したいのですか? – IanS
あなたは正しいです。それはネストされ、他の列もネストされた辞書を含むことができる。具体的なものは次のとおりです: '{u'ref':u'G '、u'alleles':[{u'allele ':u'G'}、{u'allele ':u'A'} ] '、' u'rsa ':u'rsvtype':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