擅长:python、mysql、java
<p>也许可以更优雅一点,但有一种可能:</p>
<pre><code>def to_frame(key, classes):
"""expand list of dicts into DataFrame"""
data = [d for row in classes for d in row]
return pd.DataFrame(data, index=[key] * len(data))
res = (
# expand nested data structures
pd.concat([
to_frame(key, classes) for key, classes in data.groupby('name')['classes']
])
.reset_index()
.rename(columns={'index': 'name'})
# pivot table
.pivot_table(index='name', columns='class', values='time', aggfunc='first')
.reset_index()
)
res.columns.name = None
print(res)
name BIO182 CS152 EE193 PHYS162
0 Adam NaN NaN 1:00 PM 2:30 PM
1 Bill NaN 2:00 PM NaN 3:30 PM
2 Sara 6:30 PM 4:00 PM NaN NaN
</code></pre>