<p>使用@amanb的设置数据帧</p>
<pre><code>df = pd.DataFrame({
'a':[1,2,3],
'b':[
[{'width': 750, 'height': 498, 'url': 'https:/XXX'}],
[{'width': 750, 'height': 498, 'url': 'https:/YYY'}],
None
]
})
</code></pre>
<hr/>
<p>{{cd2>可以使用一个<cd2>元素的列表。然后使用<code>to_dict</code>和{<cd4>}</p>
^{pr2}$
<p>为了得到</p>
<pre><code> width height url
0 750 498 https:/XXX
1 750 498 https:/YYY
</code></pre>
<p>您可以使用<code>join</code>添加到<code>df</code></p>
<pre><code>df.join(pd.DataFrame.from_dict(df.b.dropna().str[0].to_dict(), orient='index'))
a b width height url
0 1 [{'width': 750, 'height': 498, 'url': 'https:/... 750.0 498.0 https:/XXX
1 2 [{'width': 750, 'height': 498, 'url': 'https:/... 750.0 498.0 https:/YYY
2 3 None NaN NaN NaN
</code></pre>
<p>或者你可以替换柱子</p>
<pre><code>df.assign(b=pd.DataFrame.from_dict(df.b.dropna().str[0].to_dict(), orient='index').url)
a b
0 1 https:/XXX
1 2 https:/YYY
2 3 NaN
</code></pre>
<hr/>
<h3>我的实际建议</h3>
<p>但我最喜欢的是用<code>pd.io.json.json_normalize</code>来代替字典的魔力。在</p>
<pre><code>df.assign(b=pd.io.json.json_normalize(df.b.dropna().str[0]).url)
a b
0 1 https:/XXX
1 2 https:/YYY
2 3 NaN
</code></pre>