我有一个二维数组数据,在excel中如下所示:
01-Jan-1990 0:00:01 A abcdefghi jklmnopq
01-Jan-1990 0:00:02 A abcdefghi xxxyyyvvv fefwwe qqqqq
01-Jan-1990 0:00:02 xwwwww xxxxxxx yyyy
01-Jan-1990 0:00:05 B qwerty qwerty
01-Jan 1990 0:00:06 C popopop qwqwqwq tytytyty sss
在数据方面
^{pr2}$想问一下是否有任何方法可以将第3行的值合并到第2行的字符串中,而第2行没有A,B,C
?在
期望输出如下:
01-Jan-1990 0:00:01 A abcdefghi jklmnopq
01-Jan-1990 0:00:02 A abcdefghi xxxyyyvvv fefwwe qqqqq xwwwww xxxxxxx yyyy
01-Jan-1990 0:00:05 B qwerty qwerty
01-Jan 1990 0:00:06 C popopop qwqwqwq tytytyty sss
使用所需输出和缺失字段进行编辑
以下是一个可消化的解决方案,并附有注释:)
输出:
^{pr2}$假设您的数据存储在变量
data
中,您可以使用itertools.groupby
将子列表按其第一项分组,然后使用str.join
将每个组的最后一项与一个空格连接起来:这将返回:
^{pr2}$由于您希望更改列表(通过删除元素),所以使用
for row in rows
进行迭代将不起作用,除非您保留了一个要删除的索引的运行列表,然后再执行该操作(或者如果您希望避免更改原始列表,请构建一个单独的列表,等等)。从len(rows) - 1
开始向后工作并在1处停止意味着您可以只检查rows[i]
,如果需要,将其值附加到rows[i-1]
的值:这假设
rows[0]
永远不会缺少一个值,这在您的问题上下文中似乎是有意义的。在相关问题 更多 >
编程相关推荐