回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个数据帧,可以从下面给出的代码生成</p>
<pre><code>df = pd.DataFrame({'person_id' :[1,2,3],'date1': ['12/31/2007','11/25/2009','10/06/2005'],'date1derived':[0,0,0],'val1':[2,4,6],'date2': ['12/31/2017','11/25/2019','10/06/2015'],'date2derived':[0,0,0],'val2':[1,3,5],'date3':['12/31/2027','11/25/2029','10/06/2025'],'date3derived':[0,0,0],'val3':[7,9,11]})
</code></pre>
<p>数据帧如下所示</p>
<p><a href="https://i.stack.imgur.com/TVhUN.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/TVhUN.png" alt="enter image description here"/></a></p>
<p>我想保留每个人的行作为单独的行,而不是如屏幕截图所示的列在上面另外,我希望删除date1derived、date2derived列。你知道吗</p>
<p>我确实尝试了以下方法,但它们没有提供预期的输出</p>
<pre><code>1) df.set_index(['person_id']).stack()/unstack
2) df.set_index(['person_id','date1','date2','date3']).stack()/unstack()
3) df.set_index('person_id').unstack()/stack
</code></pre>
<p>我怎样才能得到这样的输出?我有600多列,所以我不认为手动编写列名对我有帮助。你知道吗</p>
<p><a href="https://i.stack.imgur.com/vVFF1.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/vVFF1.png" alt="enter image description here"/></a></p>