我刚接触Python。我编写了一个脚本,该脚本可以帮助我读取,分析,操纵工程数据并将其写入csv文件。为了使其完全自动化,我需要能够移动数据(当前是在excel中进行操作),请考虑下面的数据集示例:
我希望将其输出如下:
通知值A1消失,最后一行数据被删除。但是第二列中的所有数据都移到了上一个时间步。
我尝试了几种不同的方法,但是它们包括将代码的不同部分放在其他部分之前或之后,以在新行覆盖之前读取的行中获取数据。它被证明很难遵循,因此如果计算中存在错误,则很难排除故障。只是想知道是否有一个聪明的方法来实现这一目标
答案 0 :(得分:0)
使用zip函数可以轻松完成此操作,方法是将列表与第二个位置开始的副本本身组合在一起:
data = [ ("Date_1", "Value_A1", "Value_B1"),
("Date_2", "Value_A2", "Value B2"),
("Date_3", "Value_A3", "Value B3"),
("Date_4", "Value_A4", "Value B4")]
shifted = [ (d1[0],d2[1],d1[2]) for d1,d2 in zip(data,data[1:]) ]
for line in shifted: print(line)
# ('Date_1', 'Value_A2', 'Value_B1')
# ('Date_2', 'Value_A3', 'Value B2')
# ('Date_3', 'Value_A4', 'Value B3')