逐行读取csv文件,文件有五列,当读取到行,第二列为47且第三列时间相同时,构建新的csv文件,文件一共有三列,第一列为schedule,第二列为time,第三列为weiyi,将连续相同的第三列情况下的第五列数值,写入在新建csv文件weiyi下的一个单元格中每个数值以“,”隔开,并将第三列相同的时间写入新建csv文件time中,第一列写入新建文件csv文件schedule中。
时间: 2023-05-31 21:04:39 浏览: 77
以下是Python的示例代码:
```python
import csv
# 打开原始csv文件和新建csv文件
with open('original.csv', 'r') as csv_file, open('new.csv', 'w', newline='') as new_file:
csv_reader = csv.reader(csv_file)
csv_writer = csv.writer(new_file)
# 写入新建csv文件的表头
csv_writer.writerow(['schedule', 'time', 'weiyi'])
# 初始化变量
current_time = ''
current_weiyi = ''
current_schedule = ''
for row in csv_reader:
# 判断第二列是否为47且第三列时间相同
if row[1] == '47' and row[2] == current_time:
# 如果是,则将第五列数值加入当前weiyi的字符串中
current_weiyi += ',' + row[4]
else:
# 如果不是,则写入上一次的数据
if current_weiyi != '':
csv_writer.writerow([current_schedule, current_time, current_weiyi])
# 更新变量
current_schedule = row[0]
current_time = row[2]
current_weiyi = row[4]
# 写入最后一次的数据
if current_weiyi != '':
csv_writer.writerow([current_schedule, current_time, current_weiyi])
```
假设原始csv文件内容如下:
```
schedule,code,time,location,weiyi
A,47,2021-01-01 10:00:00,1,1.0
B,47,2021-01-01 10:00:00,2,2.0
C,47,2021-01-01 10:00:00,3,3.0
D,47,2021-01-01 10:00:00,4,4.0
E,47,2021-01-01 11:00:00,5,5.0
F,47,2021-01-01 11:00:00,6,6.0
G,47,2021-01-01 12:00:00,7,7.0
H,47,2021-01-01 13:00:00,8,8.0
```
则新建csv文件内容应为:
```
schedule,time,weiyi
A,2021-01-01 10:00:00,1.0,2.0,3.0,4.0
E,2021-01-01 11:00:00,5.0,6.0
G,2021-01-01 12:00:00,7.0
H,2021-01-01 13:00:00,8.0
```
阅读全文