我正试图转换为所需的输出格式与下面提到的要求.
提供的要求:
- 每行只能保留一个非Nan值(* Trh 1 * 和 * Trh 2 * 除外)
- 出于性能考虑,我希望避免使用遍历每一行的方法。
- 我只包括了四个列,例如,在真实的场景中,有更多的列可以共享
示例: - 输入 *:
| 指数|模式|柱|TRH1| TRH2| Trh 3| Trh 4|
| --|--|--|--|--|--|--|
| 0 |方案_1| col_1|楠|0.01|楠|楠|
| 1 |图式_2| col_2|零点零二|0.03|楠|楠|
| 2 |图式_3| col_3| 0.03|零点零四分|0.05|楠|
| 3 |schema_4| col_4|楠|楠|零点零六|零点零七|
- 预期输出 *:
| 指数|模式|柱|TRH1| TRH2| Trh 3| Trh 4|
| --|--|--|--|--|--|--|
| 0 |方案_1| col_1|楠|0.01|楠|楠|
| 1 |图式_2| col_2|零点零二|0.03|楠|楠|
| 2 |图式_3| col_3| 0.03|零点零四分|楠|楠|
| 3 |图式_3| col_3|楠|楠|0.05|楠|
| 4 |schema_4| col_4|楠|楠|零点零六|楠|
| 5 |schema_4| col_4|楠|楠|楠|零点零七|
我探索了以下方法:Split row into 2 based on condition pandas。然而,如果两列中没有Nan值,则该方法仅适用于拆分行。
3条答案
按热度按时间gev0vcfq1#
处理跳转
输出量:
原始答案
您可以通过
stack
/unstack
将整形与重复数据消除结合使用:cols
中没有重复。*或者使用
melt
,这可能会占用更多内存,但如果您有副本,则会更健壮:输出量:
20jt8wwn2#
这个应该也可以。
输出量:
vh0rcniy3#
唯一地分离所有列TRH 3、TRH 4(组合TRH 1和TRH 2)并将它们连接。删除NaN值并重置索引。