擅长:python、mysql、java
<p>单向:</p>
<pre><code>df1 = df.sort_values(['subj', 'age'])
df = pd.concat([df1.iloc[::2,[0,2]].set_index('subj'), df1.iloc[1::2,[0, 2]].set_index('subj')], 1)
df.columns = ['score_time1', 'core_time1']
</code></pre>
<p>通过<code>pivot_table</code>和<code>rank</code>的备选方案:</p>
<pre><code>df = (
df.pivot_table(
index='subj',
columns=df.groupby('subj')['age'].rank(method='dense').astype(int),
values='score')
.add_prefix('score_time_')
.rename_axis(columns=None)
.reset_index()
)
</code></pre>
<p>输出:</p>
<pre><code> score_time1 core_time1
subj
subj1 2 1
subj2 5 2
subj3 3 5
</code></pre>