回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>因此,我有以下数据框:</p>
<pre><code>In [1]:
import pandas as pd
import numpy as np
df = pd.DataFrame([['0068edf090ceaf1356', '0068edf090ceaf1356', '0068edf090ceaf1356','0068edf090ceaf1356', '0068edf090ceaf1356', '009eft67eaa133cea4', '009eft67eaa133cea4', '009eft67eaa133cea4', '009eft67eaa133cea4'], [-26, -26 -36, 81, 181, -51, -81, 61, 71], [18.0, 27.0, 53.0, 43.6, 12.4, 24.4, 63.0,72.8]], columns = ['uuid', 'prom_completed_date', 'prom_score'])
In [2]: df
Out[2]:
uuid prom_completed_date prom_score
0068edf090ceaf1356 -26 18.0
0068edf090ceaf1356 -26 18.0
0068edf090ceaf1356 -36 27.0
0068edf090ceaf1356 81 53.0
0068edf090ceaf1356 181 43.6
009eft67eaa133cea4 -51 12.4
009eft67eaa133cea4 -81 24.4
009eft67eaa133cea4 61 63.0
009eft67eaa133cea4 71 72.8
</code></pre>
<p>每个患者都有多个条目。请记住,前两个条目不是重复条目,但与其他具有不同选项的列相同,因此,操作前平均值不是(18+18+27)/3,而是(18+27)/2</p>
<p>我想创建一个新的数据帧,其中每个uuid有三个新列:</p>
<ul>
<li>平均PROM分数,其中PROM_completed_date_relative中的值为负值</li>
<li>平均PROM分数,其中PROM_completed_date_relative中的值为正值</li>
<li>上述两个平均值之间的差异</李>
</ul>
<p>我不确定如何在python中进行编码,同时确保uuid分组</p>
<p>我在找这样的东西:</p>
<pre><code>In [3]:
Out[3]:
uuid postop_avgPROM preop_avgPROM difference
0068edf090ceaf1356 48.3 22.5 25.8
009eft67eaa133cea4 67.9 18.4 49.5
</code></pre>
<p>我尝试了以下方法:</p>
<pre><code>df.query("prom_completed_date_relative">0).groupby("uuid")["prom_score"].mean().reset_index(name="postop_avgPROM_score")
</code></pre>
<p>但不幸的是,它似乎不起作用</p>
<p>多谢各位</p>