擅长:python、mysql、java
<p>我们只需创建两个新列<code>Bonus</code>和<code>Score</code>。您可以将列表理解与<code>.get()</code>结合使用,根据键<code>bonus</code>和<code>score</code>检索值。然后,通过下标<code>[1]</code>并减去<code>[0]</code>从第一个值减去第二个值</p>
<pre><code>import pandas as pd
df = pd.DataFrame({'dict_col': [[{'score': 100, 'bonus': 10}, {'score': 60, 'bonus': 0}],
[{'score': 80, 'bonus': 20}, {'score': 90, 'bonus': 30}]]})
df['Bonus'] = df['dict_col'].apply(lambda x: [d.get('bonus') for d in x][1] - [d.get('bonus') for d in x][0])
df['Score'] = df['dict_col'].apply(lambda x: [d.get('score') for d in x][1] - [d.get('score') for d in x][0])
df
Out[1]:
dict_col Bonus Score
0 [{'score': 100, 'bonus': 10}, {'score': 60, 'b... -10 -40
1 [{'score': 80, 'bonus': 20}, {'score': 90, 'bo... 10 10
</code></pre>