擅长:python、mysql、java
<p>使用<code>ast.literal_eval</code>在列表理解中创建新字典,用于将字符串repr转换为字典和<code>join</code>转换为原始数据帧:</p>
<pre><code>import ast
df1 = (pd.DataFrame([{**y, **{'i':k}}
for k, v in df.pop('Authors').items()
for y in ast.literal_eval(v)]).set_index('i'))
print (df1)
first_name last_name
i
0 fn1 ln1
0 fn2 ln2
1 fn3 ln3
df = df.join(df1).reset_index(drop=True)
print (df)
Codes ID Year first_name last_name
0 11111 id0001 2019 fn1 ln1
1 11111 id0001 2019 fn2 ln2
2 22222 id0002 2019 fn3 ln3
</code></pre>