擅长:python、mysql、java
<p>您可以使用字符串来转换字典列表中的<code>ast.literal_eval</code>,然后通过<code>t</code>和{<cd3>}s获得值:</p>
<pre><code>import ast
out = []
for x in df.pop('eventlist'):
a = ast.literal_eval(x)
out.append([a[0].get('t'), a[-1].get('t')])
</code></pre>
<p>或使用<code>re.findall</code>:</p>
^{pr2}$
<hr/>
<pre><code>print (out)
[['1234', '3456'], ['2345', '1359'], ['1334', '3556']]
</code></pre>
<p>然后将<code>DataFrame</code>和{<cd6>}创建为原始:</p>
<pre><code>df = df.join(pd.DataFrame(out, columns=['t_first','t_last'], index=df.index))
print (df)
name t_first t_last
0 a 1234 3456
1 b 2345 1359
2 c 1334 3556
</code></pre>
<p>另一个带有<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.findall.html" rel="nofollow noreferrer">^{<cd7>}</a>和<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.assign.html" rel="nofollow noreferrer">^{<cd8>}</a>新列的解决方案:</p>
<pre><code>a = df.pop('eventlist').str.findall(r"t': '(.+?)'")
df = df.assign(t_first= a.str[0], t_last = a.str[-1])
</code></pre>