python - 检查excel数据文件的连续性
问题描述
我有一个以日期时间分隔的 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)]
推荐阅读
- c# - ASP.NET Core Identity - 强制用户配置 2FA
- html - 背景位置不适用于宽度和高度为 100% 的父级?
- rename - 用标签值重命名所有变量
- katalon-studio - 在 Test Studio 中执行测试后操作
- android - 备份和恢复到手机联系人的链接(也支持更换手机)
- javascript - Callback/Promise 嵌套循环,2 个 API 调用
- ruby-on-rails - ERB 模板的测试覆盖率
- vb.net - 将 .ToHashset 结果从 (Of Char) 转换为 (Of String)?
- python - 使用参数中的变量运行 Python 脚本
- c# - 忽略正则表达式中的空格并匹配