将第二行和第三行移至第一行的末尾 输入CSV:转化:输出CSV:

问题描述

我不太确定如何解释这个问题,但是我有一个电子表格,我将其插入没有标题的python中,并且与每个唯一ID相关的数据都分为三行,因此此时的列不读到“变平”之前,它真的没有任何意义。格式是一致的,但是我很难确定要搜索什么才能获得所需的输出。

如果这是在Excel中,则基本上是将第二行和第三行复制到第1行的右侧 然后删除第2行和第3行,重复直到我到达工作表底部为止。

这就是我接收数据的方式

id1 criteria1   criteria2   criteria3
criteria4   criteria5   criteria6   criteria7
criteria8   criteria9   criteria10  criteria11
id2 criteria1   criteria2   criteria3
criteria4   criteria5   criteria6   criteria7
criteria8   criteria9   criteria10  criteria11
id3 criteria1   criteria2   criteria3
criteria4   criteria5   criteria6   criteria7
criteria8   criteria9   criteria10  criteria11

这就是我要实现的目标

id1 criteria1   criteria2   criteria3   criteria4   criteria5   criteria6   criteria7   criteria8   criteria9   criteria10  criteria11
id2 criteria1   criteria2   criteria3   criteria4   criteria5   criteria6   criteria7   criteria8   criteria9   criteria10  criteria11
id3 criteria1   criteria2   criteria3   criteria4   criteria5   criteria6   criteria7   criteria8   criteria9   criteria10  criteria11

解决方法

看看这是否会让您走上正确的轨道。 注意事项:鉴于源数据的歧义性(如注释中所述),很难提供完整的解决方案...但是请尝试一下。

使用您的示例输入,将其转换为简单的CSV文件。

输入CSV:

id1,criteria1,criteria2,criteria3
criteria4,criteria5,criteria6,criteria7
criteria8,criteria9,criteria10,criteria11
id2,criteria11
id3,criteria11

转化:

注意:[3,12](或[rows,columns])的整形值将需要根据输入数据的形状进行修改。

import pandas as pd

array = pd.read_csv('folded.csv',header=None).to_numpy().reshape([3,12])
pd.DataFrame(array).to_csv('unfolded.csv',index=False,header=False)

输出CSV:

id1,criteria3,criteria4,criteria7,criteria8,criteria11

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...