检查 excel 数据文件的连续性
Checking continuity of a excel datafile
我有一个 excel 数据文件,其中以日期时间分隔。我想检查数据是否连续。
我试图通过计算列总数然后与假定的数据点数(行数)匹配来检查它。
但这种方法在实际存在间隙时有局限性。我需要识别那些。
https://docs.google.com/spreadsheets/d/1T_xQIi-6nT3XLjIZthUuGuBfG2rDlXqlv95brYn5HyA/edit?usp=sharing
数据:
date month year hour min sec normalised parameter
0 30 10 10 15 50 0 0.03256
1 30 10 10 16 0 0 0.02802
2 30 10 10 16 10 0 0.06172
3 30 10 10 16 20 0 0.05575
4 30 10 10 16 30 0 0.01257
5 30 10 10 16 40 0 0.04290
6 30 10 10 16 50 0 0.01149
7 30 10 10 17 0 0 0.02578
8 30 10 10 17 10 0 0.14456
9 30 10 10 17 20 0 0.15088
10 30 10 10 17 30 0 0.16388
11 30 10 10 17 40 0 0.13482
12 30 10 10 17 50 0 0.14490
13 30 10 10 18 0 0 0.15439
14 30 10 10 18 10 0 0.13844
15 30 10 10 18 20 0 0.15166
16 30 10 10 18 30 0 0.15164
17 30 10 10 18 40 0 0.13921
18 30 10 10 18 50 0 0.13138
19 30 10 10 19 0 0 0.13686
20 30 10 10 19 10 0 0.12743
21 30 10 10 19 20 0 0.12653
22 30 10 10 19 30 0 0.13013
23 30 10 10 19 40 0 0.14165
24 30 10 10 19 50 0 0.14974
25 30 10 10 20 0 0 0.15876
26 30 10 10 20 10 0 0.12383
27 30 10 10 20 20 0 0.09934
28 30 10 10 20 30 0 0.08373
29 30 10 10 20 40 0 0.11064
30 30 10 10 20 50 0 0.09099
31 30 10 10 21 0 0 0.09023
32 30 10 10 21 10 0 0.09880
33 30 10 10 21 20 0 0.08617
请帮帮我。
谢谢,
真诚的
兰詹
编辑,
这是我试过的代码。
import csv
with open('/home/sci_lab/Desktop/shankar_test/RCM_data/l1-492.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter = ',')
line_count = 0
print(f' jda dt/mn/yr/hr/min')
for row in csv_reader:
if line_count == 0:
line_count += 1
else:
print(f'\t{row[0]} {row[1]} {row[2]} {row[4]} {row[5]}')
line_count += 1
print(f' Processed {line_count} lines')
如果处理的行数等于假定的行数,如果它是连续的。
但局限性在于,即使存在一些差距,也不会为人所知。
使用pandas
库做一个groupby
然后count
记录分钟数列
import pandas as pd
csv_path = '/home/sci_lab/Desktop/shankar_test/RCM_data/l1-492.csv'
df = pd.read_csv(csv_path)
gdf = df.groupby(['year', 'month', 'date', 'hour'])['min'].count()
输出
year month date hour
10 10 30 15 1
16 6
17 6
18 6
19 6
20 6
21 3
如果该值不是 6,则该小时没有所有 10 分钟的值。
编辑:您可以筛选具有 6
的值
gdf.loc[gdf.eq(6)]
我有一个 excel 数据文件,其中以日期时间分隔。我想检查数据是否连续。 我试图通过计算列总数然后与假定的数据点数(行数)匹配来检查它。 但这种方法在实际存在间隙时有局限性。我需要识别那些。
https://docs.google.com/spreadsheets/d/1T_xQIi-6nT3XLjIZthUuGuBfG2rDlXqlv95brYn5HyA/edit?usp=sharing
数据:
date month year hour min sec normalised parameter
0 30 10 10 15 50 0 0.03256
1 30 10 10 16 0 0 0.02802
2 30 10 10 16 10 0 0.06172
3 30 10 10 16 20 0 0.05575
4 30 10 10 16 30 0 0.01257
5 30 10 10 16 40 0 0.04290
6 30 10 10 16 50 0 0.01149
7 30 10 10 17 0 0 0.02578
8 30 10 10 17 10 0 0.14456
9 30 10 10 17 20 0 0.15088
10 30 10 10 17 30 0 0.16388
11 30 10 10 17 40 0 0.13482
12 30 10 10 17 50 0 0.14490
13 30 10 10 18 0 0 0.15439
14 30 10 10 18 10 0 0.13844
15 30 10 10 18 20 0 0.15166
16 30 10 10 18 30 0 0.15164
17 30 10 10 18 40 0 0.13921
18 30 10 10 18 50 0 0.13138
19 30 10 10 19 0 0 0.13686
20 30 10 10 19 10 0 0.12743
21 30 10 10 19 20 0 0.12653
22 30 10 10 19 30 0 0.13013
23 30 10 10 19 40 0 0.14165
24 30 10 10 19 50 0 0.14974
25 30 10 10 20 0 0 0.15876
26 30 10 10 20 10 0 0.12383
27 30 10 10 20 20 0 0.09934
28 30 10 10 20 30 0 0.08373
29 30 10 10 20 40 0 0.11064
30 30 10 10 20 50 0 0.09099
31 30 10 10 21 0 0 0.09023
32 30 10 10 21 10 0 0.09880
33 30 10 10 21 20 0 0.08617
请帮帮我。
谢谢,
真诚的
兰詹
编辑, 这是我试过的代码。
import csv
with open('/home/sci_lab/Desktop/shankar_test/RCM_data/l1-492.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter = ',')
line_count = 0
print(f' jda dt/mn/yr/hr/min')
for row in csv_reader:
if line_count == 0:
line_count += 1
else:
print(f'\t{row[0]} {row[1]} {row[2]} {row[4]} {row[5]}')
line_count += 1
print(f' Processed {line_count} lines')
如果处理的行数等于假定的行数,如果它是连续的。
但局限性在于,即使存在一些差距,也不会为人所知。
使用pandas
库做一个groupby
然后count
记录分钟数列
import pandas as pd
csv_path = '/home/sci_lab/Desktop/shankar_test/RCM_data/l1-492.csv'
df = pd.read_csv(csv_path)
gdf = df.groupby(['year', 'month', 'date', 'hour'])['min'].count()
输出
year month date hour
10 10 30 15 1
16 6
17 6
18 6
19 6
20 6
21 3
如果该值不是 6,则该小时没有所有 10 分钟的值。
编辑:您可以筛选具有 6
的值gdf.loc[gdf.eq(6)]