Python 将CSV重组为数据帧

Python 将CSV重组为数据帧,python,pandas,csv,Python,Pandas,Csv,我有一个CSV,格式相当混乱: t, 01_x, 01_y, 02_x, 02_y 0, 0, 1, , 1, 1, 1, 0, 0 因此,“01_uu”和“02_uu”是实体数(1,2),它们可能因文件而异,也可能有其他列(但对于所有实体至少相同)。 还要注意,实体2在t=1时进入场景(t=0时没有条目) 我已经将CSV导入到熊猫数据框中,但没有看到将内容转换为以下形式的方法: t, entity, x, y 0, 1, 0, 1 1

我有一个CSV,格式相当混乱:

t, 01_x, 01_y, 02_x, 02_y
0,     0,    1,    ,
1,     1,    1,   0,    0  
因此,“01_uu”和“02_uu”是实体数(1,2),它们可能因文件而异,也可能有其他列(但对于所有实体至少相同)。 还要注意,实体2在t=1时进入场景(t=0时没有条目)

我已经将CSV导入到熊猫数据框中,但没有看到将内容转换为以下形式的方法:

t, entity, x, y
0,      1, 0, 1
1,      1, 1, 1
1       2, 0, 0
有没有一个简单的(pythonic)方法来改变这一点

谢谢! Rene

这是,但是我们需要首先在
'

df.columns = ['_'.join(x.split('_')[::-1]) for x in df.columns]
#Index(['t', 'x_01', 'y_01', 'x_02', 'y_02'], dtype='object')

(pd.wide_to_long(df, i='t', j='entity', stubnames=['x', 'y'], sep='_')
   .dropna()
   .reset_index())


请不要编辑已经有答案的问题,因为这些问题的提问方式会使上述答案无效。请考虑取消编辑。如果一个给定的答案让你意识到你实际上想问一个不同的问题,那么请再次使用“提问”按钮来创建新的不同问题。@Yunnosch我不同意。在答案被接受之前,编辑问题没有坏处,通常只有好处。在这种情况下,样本数据和预期输出保持不变,只添加了澄清细节。建议人们不要编辑,因为有人跳出来添加答案(在这种情况下,没有完全理解问题),这是回答者的错,而不是提问者的错。@Alolz。我的观点是,由于编辑后没有回答问题而获得否决票的答案是作者感到沮丧的原因,也就是说,这对那些花费精力试图帮助的人是不公平的。顺便问一下,你希望什么时候一个答案会被接受,然后被问题的编辑作废?通常,这样的回答会让OP意识到他们以后会改变什么,因为他们没有回答他们真正想要的问题。。。我希望你们不要怀疑这里的阿克斯会认为“很好,这解决了问题A。现在让我们在这里问一下问题B。”。恐怖!抱歉@HaydenEastwood,我试图通过启发OP来为你辩护……诚然,现在回退可能会使现在唯一存在的答案无效。。。唉。
   t  entity    x    y
0  0       1  0.0  1.0
1  1       1  1.0  1.0
2  1       2  0.0  0.0