在python,假设csv文件有4列,假设第一列的某个值与第四列某个值相等,则将第一列某个值同一行在第二列的数据匹配到第三列的批量范围中,并且统计每个范围内数据个数输出csv文件
时间: 2024-05-12 11:20:24 浏览: 49
源代码.txt
以下是一个可能的解决方案:
```python
import csv
# 打开csv文件并读取数据
with open('input.csv', 'r') as f:
reader = csv.reader(f)
rows = [row for row in reader]
# 创建一个字典来记录每个范围内的数据个数
count_dict = {}
# 遍历每一行数据
for row in rows:
if row[0] == row[3]: # 如果第一列的值等于第四列的值
start = int(row[2]) # 获取范围的起始值(第三列的值)
end = start + int(row[1]) # 计算范围的结束值
# 将范围添加到字典中,并增加计数
count_dict.setdefault((start, end), 0)
count_dict[(start, end)] += 1
# 将结果写入新的csv文件
with open('output.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['Start', 'End', 'Count'])
for (start, end), count in count_dict.items():
writer.writerow([start, end, count])
```
假设输入文件 `input.csv` 如下:
```
A,10,5,A
B,8,2,C
C,20,10,C
D,5,3,E
E,15,7,E
```
运行上述代码后,输出文件 `output.csv` 应该如下:
```
Start,End,Count
20,30,2
0,5,1
15,22,2
```
阅读全文