我努力从Excel迁移到Python,因为我已经习惯了让所有东西都可见。下面,我试图将表格从顶部转换为下表。想要使用熊猫数据帧,但如果有更好的解决方案,那么我很乐意听到它。
另外,作为一个额外的好处,如果有人可以指出一些同情视觉excel转换为Python的资源,那将是非常棒的!
*注意,实际上有大约350行,我们可以使用ID12和Code 12.此外,状态可以在我的原始数据源中重复,就像VA在这里一样。
State ID Code ID2 Code2 ID3 Code3
VA RIC 733 FFX 787 NULL NULL
NC WIL 798 GSB 698 WSS 444
VA NPN 757 NULL NULL NULL NULL
必需输出:
State ID Code
VA RIC 733
VA FFX 787
VA NPN 757
NC WIL 798
NC GSB 698
NC WSS 444
答案 0 :(得分:4)
我认为lreshape
对于这种情况是理想的。
pd.lreshape(df, {'Code': ['Code', 'Code2', 'Code3'], 'ID': ['ID', 'ID2', 'ID3']}) \
.sort_values('State', ascending=False)
State Code ID
0 VA 733.0 RIC
2 VA 757.0 NPN
3 VA 787.0 FFX
1 NC 798.0 WIL
4 NC 698.0 GSB
5 NC 444.0 WSS
除了@ MaxU之外,更通用的解决方案是:
code_list = [col for col in list(df) if col.startswith('Code')]
id_list = [col for col in list(df) if col.startswith('ID')]
pd.lreshape(df, {'Code': code_list, 'ID': id_list}).sort_values('State', ascending=False)