请用python写一段代码,从csv读取一连串数据,如果数据是连续的,就用闭区间表示,如果数据没法连接,就单独进行输出
时间: 2023-09-29 20:08:00 浏览: 102
假设csv文件的格式如下:
```
1
2
3
5
6
7
9
10
```
以下是对应的Python代码:
```python
import csv
with open('data.csv', 'r') as f:
reader = csv.reader(f)
data = [int(row[0]) for row in reader]
ranges = []
current_range_start = data[0]
for i in range(1, len(data)):
if data[i] != data[i-1] + 1:
ranges.append((current_range_start, data[i-1]))
current_range_start = data[i]
ranges.append((current_range_start, data[-1]))
for r in ranges:
if r[0] == r[1]:
print(r[0])
else:
print('{}-{}'.format(r[0], r[1]))
```
输出结果为:
```
1-3
5-7
9-10
```
相关问题
请用python写一段代码,从csv读取一连串数据,如果数据是连续的,就用闭区间表示,如果数据不是连续的,就单独打印出来
假设csv文件中只有一列数据,每个值用逗号分隔。可以使用pandas库来读取csv文件,并判断数据是否连续。
```python
import pandas as pd
# 读取csv文件
df = pd.read_csv('data.csv', header=None)
# 将数据转化为列表
data = df[0].tolist()
# 定义连续数据的起点和终点
start = None
end = None
# 遍历数据
for i in range(len(data)):
# 如果当前数据是连续的
if i > 0 and data[i] == data[i-1] + 1:
# 如果没有起点,则设置起点
if start is None:
start = data[i-1]
# 设置终点
end = data[i]
# 如果当前数据不是连续的
else:
# 如果存在起点和终点,则表示连续数据的区间结束了
if start is not None and end is not None:
print('[{}-{}]'.format(start, end))
start = None
end = None
# 打印不连续的数据
print(data[i])
# 如果存在起点和终点,则表示连续数据的区间结束了
if start is not None and end is not None:
print('[{}-{}]'.format(start, end))
```
这段代码会将csv文件中的数据按照连续或不连续进行输出。如果数据是连续的,则会用闭区间表示。
请用python写一段代码,从csv读取一连串数据,如果数据是连续的,就用闭区间表示,如果数据是单独的(非连续的),就单独打印出来
假设csv文件中只有一列数据,可以使用pandas库来读取csv文件,并进行数据处理。以下是示例代码:
```python
import pandas as pd
# 读取csv文件
df = pd.read_csv('data.csv', header=None)
# 将数据转换为一维数组
data = df.values.flatten()
# 初始化起始值和结束值
start = None
end = None
# 遍历数据
for i, val in enumerate(data):
# 如果当前值与前一个值不连续,就输出前一个值
if i > 0 and val != data[i-1]+1:
if start is not None:
# 如果前面有连续的数据,就输出闭区间
print('[{}, {}]'.format(start, end))
start = end = None
print(val)
else:
if start is None:
# 如果前面没有连续的数据,就初始化起始值
start = end = val
else:
# 如果前面有连续的数据,就更新结束值
end = val
# 处理最后一段连续的数据
if start is not None:
print('[{}, {}]'.format(start, end))
```
其中,`data.csv`是待读取的文件名,可以根据实际情况进行修改。
阅读全文