csvutils 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Manifest.txt +9 -0
- data/lib/csvutils.rb +4 -2
- data/lib/csvutils/cut.rb +47 -0
- data/lib/csvutils/split.rb +107 -0
- data/lib/csvutils/test.rb +22 -0
- data/lib/csvutils/utils.rb +29 -0
- data/lib/csvutils/version.rb +2 -2
- data/test/data/at-austria/AUT.csv +363 -0
- data/test/data/de-deutschland/bundesliga.csv +481 -0
- data/test/data/eng-england/2017-18/E0.csv +381 -0
- data/test/helper.rb +7 -1
- data/test/test_headers.rb +41 -0
- data/test/test_misc.rb +33 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 91b99040998dec29903bb139c7650aec805981c9
|
4
|
+
data.tar.gz: 4ca0a379e0a99dc01f35957ca021ccb4b56aaef3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cae580d42247f3df41c846880cdfc78f4f410fc553acff75b57cf85d542a80e97c6ef4ec7e1e924b1cdd85934596addc4d0941bdab9e31478bf0e012386eaf2
|
7
|
+
data.tar.gz: 8398dabd6e1bf01134ba31016b77a866c308c7a75ef426b1ebc995d043c11ec757c15c07bc5b8ba2f81764fa796ad96013055b19af30b70504647aff3915b570
|
data/Manifest.txt
CHANGED
@@ -3,6 +3,15 @@ Manifest.txt
|
|
3
3
|
README.md
|
4
4
|
Rakefile
|
5
5
|
lib/csvutils.rb
|
6
|
+
lib/csvutils/cut.rb
|
7
|
+
lib/csvutils/split.rb
|
8
|
+
lib/csvutils/test.rb
|
9
|
+
lib/csvutils/utils.rb
|
6
10
|
lib/csvutils/version.rb
|
11
|
+
test/data/at-austria/AUT.csv
|
12
|
+
test/data/de-deutschland/bundesliga.csv
|
13
|
+
test/data/eng-england/2017-18/E0.csv
|
7
14
|
test/helper.rb
|
15
|
+
test/test_headers.rb
|
16
|
+
test/test_misc.rb
|
8
17
|
test/test_version.rb
|
data/lib/csvutils.rb
CHANGED
data/lib/csvutils/cut.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
## check/use class or module ???
|
4
|
+
|
5
|
+
|
6
|
+
class CsvUtils
|
7
|
+
|
8
|
+
def self.cut( inpath, outpath, *columns, sep: ',' )
|
9
|
+
|
10
|
+
puts "cvscut in: >#{inpath}< out: >#{outpath}<"
|
11
|
+
|
12
|
+
## ["Date", "HomeTeam", "AwayTeam", "FTHG", "FTAG", "HTHG", "HTAG"]
|
13
|
+
puts "columns:"
|
14
|
+
pp columns
|
15
|
+
|
16
|
+
text = File.open( inpath, 'r:utf-8' ).read ## note: make sure to use (assume) utf-8
|
17
|
+
|
18
|
+
csv_options = { headers: true,
|
19
|
+
col_sep: sep }
|
20
|
+
|
21
|
+
table = CSV.parse( text, csv_options )
|
22
|
+
|
23
|
+
|
24
|
+
## for convenience - make sure parent folders/directories exist
|
25
|
+
FileUtils.mkdir_p( File.dirname( outpath )) unless Dir.exists?( File.dirname( outpath ))
|
26
|
+
|
27
|
+
## use wb mode - why? why not?
|
28
|
+
## assumes same encoding as input?
|
29
|
+
## fix/todo: better (always) use utf8!!!!
|
30
|
+
## CSV.open( out_path, 'wb' ) do |out|
|
31
|
+
|
32
|
+
## use just "regular" File for output - why? why not?
|
33
|
+
## downside will not encode comma (for now) if present ("Beethoven, van")
|
34
|
+
## all values will be unquoted etc. - keep it simple?
|
35
|
+
|
36
|
+
CSV.open( outpath, 'w:utf-8' ) do |out|
|
37
|
+
out << columns ## for row add headers/columns
|
38
|
+
table.each do |row|
|
39
|
+
values = columns.map { |col| row[col].strip } ## find data for column
|
40
|
+
out << values
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
puts 'Done.'
|
45
|
+
end ## method self.cut
|
46
|
+
|
47
|
+
end # class CsvUtils
|
@@ -0,0 +1,107 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
class CsvUtils
|
7
|
+
|
8
|
+
def self.split( path, *columns, sep: ',', &blk )
|
9
|
+
|
10
|
+
puts "cvssplit in: >#{path}<"
|
11
|
+
|
12
|
+
## ["Date", "HomeTeam", "AwayTeam", "FTHG", "FTAG", "HTHG", "HTAG"]
|
13
|
+
puts "columns:"
|
14
|
+
pp columns
|
15
|
+
|
16
|
+
text = File.open( path, 'r:utf-8' ).read ## note: make sure to use (assume) utf-8
|
17
|
+
|
18
|
+
## note: do NOT use headers
|
19
|
+
## for easy sorting use "plain" array of array for records
|
20
|
+
csv_options = { col_sep: sep }
|
21
|
+
|
22
|
+
data = CSV.parse( text, csv_options )
|
23
|
+
|
24
|
+
## todo/check: (auto-) strip (remove all leading and trailing spaces)
|
25
|
+
## from all values - why? why not?
|
26
|
+
## check if CSV.parse has an option for it?
|
27
|
+
|
28
|
+
headers = data.shift ## remove top array item (that is, row with headers)
|
29
|
+
|
30
|
+
header_mapping = {}
|
31
|
+
headers.each_with_index { | header,i | header_mapping[header]=i }
|
32
|
+
pp header_mapping
|
33
|
+
|
34
|
+
## map columns to array indices e.g. ['Season', 'Div'] => [1,2]
|
35
|
+
column_indices = columns.map { |col| header_mapping[col] }
|
36
|
+
pp column_indices
|
37
|
+
|
38
|
+
|
39
|
+
###################################################
|
40
|
+
## note: sort data by columns (before split)
|
41
|
+
data = data.sort do |row1,row2|
|
42
|
+
res = 0
|
43
|
+
column_indices.each do |col|
|
44
|
+
res = row1[col] <=> row2[col] if res == 0
|
45
|
+
end
|
46
|
+
res
|
47
|
+
end
|
48
|
+
|
49
|
+
chunk = []
|
50
|
+
data.each_with_index do |row,i|
|
51
|
+
chunk << row
|
52
|
+
|
53
|
+
next_row = data[i+1]
|
54
|
+
|
55
|
+
changed = false
|
56
|
+
if next_row.nil? ## end-of-file
|
57
|
+
changed = true
|
58
|
+
else
|
59
|
+
column_indices.each do |col|
|
60
|
+
if row[col] != next_row[col]
|
61
|
+
changed = true
|
62
|
+
break ## out of each column_indices loop
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
if changed
|
68
|
+
puts "save new chunk:"
|
69
|
+
column_values = column_indices.map {|col| row[col] }
|
70
|
+
pp column_values
|
71
|
+
|
72
|
+
# note: add header(s) row upfront (as first row) to chunk (with unshift)
|
73
|
+
chunk_with_headers = chunk.unshift( headers )
|
74
|
+
if blk
|
75
|
+
yield( column_values, chunk_with_headers )
|
76
|
+
else
|
77
|
+
## auto-save (write-to-file) by default - why? why not?
|
78
|
+
split_write( path, column_values, chunk_with_headers )
|
79
|
+
end
|
80
|
+
|
81
|
+
chunk = [] ## reset chunk for next batch of records
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
puts 'Done.'
|
86
|
+
end ## method self.split
|
87
|
+
|
88
|
+
|
89
|
+
def self.split_write( inpath, values, chunk )
|
90
|
+
basename = File.basename( inpath, '.*' )
|
91
|
+
dirname = File.dirname( inpath )
|
92
|
+
|
93
|
+
## check/change invalid filename chars
|
94
|
+
## e.g. change 1990/91 to 1990-91
|
95
|
+
extraname = values.map {|value| value.tr('/','-')}.join('~')
|
96
|
+
|
97
|
+
outpath = "#{dirname}/#{basename}_#{extraname}.csv"
|
98
|
+
puts "saving >#{basename}_#{extraname}.csv<..."
|
99
|
+
|
100
|
+
CSV.open( outpath, 'w:utf-8' ) do |out|
|
101
|
+
chunk.each do |row|
|
102
|
+
out << row
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
end # class CsvUtils
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
|
4
|
+
class CsvUtils
|
5
|
+
|
6
|
+
## test or dry run to check if rows can get read/scanned
|
7
|
+
def self.test( path, sep: ',' )
|
8
|
+
i = 0
|
9
|
+
csv_options = { headers: true,
|
10
|
+
col_sep: sep,
|
11
|
+
## todo/fix: always (auto-)add utf-8 external encoding!!!
|
12
|
+
}
|
13
|
+
|
14
|
+
CSV.foreach( path, csv_options ) do |row|
|
15
|
+
i += 1
|
16
|
+
print '.' if i % 100 == 0
|
17
|
+
end
|
18
|
+
|
19
|
+
puts " #{i} rows"
|
20
|
+
end
|
21
|
+
|
22
|
+
end # class CsvUtils
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
|
4
|
+
class CsvUtils
|
5
|
+
|
6
|
+
def self.header( path, sep: ',' ) ## use header or headers - or use both (with alias)?
|
7
|
+
|
8
|
+
# read first line (only)
|
9
|
+
# and parse with csv to get header from csv library itself
|
10
|
+
#
|
11
|
+
# check - if there's an easier or built-in way for the csv library
|
12
|
+
|
13
|
+
line = File.open( path, 'r:utf-8' ) { |f| f.readline }
|
14
|
+
|
15
|
+
## e.g.:
|
16
|
+
# "Country,League,Season,Date,Time,Home,Away,HG,AG,Res,PH,PD,PA,MaxH,MaxD,MaxA,AvgH,AvgD,AvgA\n"
|
17
|
+
pp line
|
18
|
+
|
19
|
+
csv_options = { col_sep: sep }
|
20
|
+
### external_encoding: 'utf-8' } ## note: always use (assume) utf8 for now
|
21
|
+
|
22
|
+
## note: do NOT use headers: true to get "plain" data array (no hash records)
|
23
|
+
## hash record does NOT work for single line/row
|
24
|
+
rows = CSV.parse( line, csv_options )
|
25
|
+
pp rows
|
26
|
+
rows[0] ## return first row
|
27
|
+
end # method self.header
|
28
|
+
|
29
|
+
end # class CsvUtils
|
data/lib/csvutils/version.rb
CHANGED
@@ -0,0 +1,363 @@
|
|
1
|
+
Season,Date,Time,Home,Away,HG,AG
|
2
|
+
2016/2017,23/07/16,15:00,Rapid Vienna,Ried,5,0
|
3
|
+
2016/2017,23/07/16,17:30,Altach,AC Wolfsberger,1,0
|
4
|
+
2016/2017,23/07/16,17:30,Sturm Graz,Salzburg,3,1
|
5
|
+
2016/2017,24/07/16,15:30,St. Polten,Austria Vienna,1,2
|
6
|
+
2016/2017,24/07/16,18:00,Mattersburg,Admira,0,1
|
7
|
+
2016/2017,30/07/16,15:00,Salzburg,AC Wolfsberger,1,1
|
8
|
+
2016/2017,30/07/16,17:30,Ried,Sturm Graz,1,0
|
9
|
+
2016/2017,31/07/16,15:30,Altach,Rapid Vienna,1,0
|
10
|
+
2016/2017,31/07/16,15:30,Austria Vienna,Mattersburg,3,1
|
11
|
+
2016/2017,31/07/16,18:00,St. Polten,Admira,2,1
|
12
|
+
2016/2017,06/08/16,15:00,Mattersburg,Sturm Graz,0,2
|
13
|
+
2016/2017,06/08/16,17:30,AC Wolfsberger,Ried,1,0
|
14
|
+
2016/2017,06/08/16,17:30,Admira,Altach,1,2
|
15
|
+
2016/2017,06/08/16,17:30,Salzburg,St. Polten,2,0
|
16
|
+
2016/2017,07/08/16,15:30,Austria Vienna,Rapid Vienna,1,4
|
17
|
+
2016/2017,13/08/16,15:00,Ried,Salzburg,0,2
|
18
|
+
2016/2017,13/08/16,17:30,Altach,St. Polten,3,1
|
19
|
+
2016/2017,13/08/16,17:30,Mattersburg,AC Wolfsberger,3,1
|
20
|
+
2016/2017,13/08/16,17:30,Rapid Vienna,Admira,4,0
|
21
|
+
2016/2017,14/08/16,15:30,Sturm Graz,Austria Vienna,3,1
|
22
|
+
2016/2017,20/08/16,15:00,St. Polten,Sturm Graz,1,3
|
23
|
+
2016/2017,20/08/16,17:30,Admira,Ried,1,0
|
24
|
+
2016/2017,20/08/16,17:30,Salzburg,Mattersburg,3,1
|
25
|
+
2016/2017,21/08/16,15:30,AC Wolfsberger,Rapid Vienna,1,1
|
26
|
+
2016/2017,21/08/16,18:00,Austria Vienna,Altach,3,1
|
27
|
+
2016/2017,27/08/16,15:00,Sturm Graz,Altach,3,1
|
28
|
+
2016/2017,27/08/16,17:30,AC Wolfsberger,Admira,5,0
|
29
|
+
2016/2017,27/08/16,17:30,Mattersburg,St. Polten,1,1
|
30
|
+
2016/2017,28/08/16,15:30,Rapid Vienna,Salzburg,0,0
|
31
|
+
2016/2017,28/08/16,18:00,Ried,Austria Vienna,1,1
|
32
|
+
2016/2017,10/09/16,15:00,Sturm Graz,Rapid Vienna,1,1
|
33
|
+
2016/2017,10/09/16,17:30,Altach,Mattersburg,2,1
|
34
|
+
2016/2017,10/09/16,17:30,Austria Vienna,AC Wolfsberger,4,1
|
35
|
+
2016/2017,10/09/16,17:30,St. Polten,Ried,2,3
|
36
|
+
2016/2017,11/09/16,15:30,Admira,Salzburg,0,4
|
37
|
+
2016/2017,17/09/16,15:00,Ried,Altach,2,1
|
38
|
+
2016/2017,17/09/16,17:30,AC Wolfsberger,St. Polten,1,1
|
39
|
+
2016/2017,17/09/16,17:30,Admira,Sturm Graz,0,3
|
40
|
+
2016/2017,18/09/16,15:30,Salzburg,Austria Vienna,4,1
|
41
|
+
2016/2017,18/09/16,18:00,Rapid Vienna,Mattersburg,3,0
|
42
|
+
2016/2017,24/09/16,15:00,St. Polten,Rapid Vienna,1,1
|
43
|
+
2016/2017,24/09/16,17:30,Austria Vienna,Admira,1,2
|
44
|
+
2016/2017,24/09/16,17:30,Mattersburg,Ried,1,1
|
45
|
+
2016/2017,24/09/16,17:30,Sturm Graz,AC Wolfsberger,3,0
|
46
|
+
2016/2017,25/09/16,15:30,Altach,Salzburg,0,0
|
47
|
+
2016/2017,01/10/16,15:00,AC Wolfsberger,Altach,1,2
|
48
|
+
2016/2017,01/10/16,17:30,Admira,Mattersburg,1,0
|
49
|
+
2016/2017,02/10/16,15:30,Ried,Rapid Vienna,4,2
|
50
|
+
2016/2017,02/10/16,15:30,Salzburg,Sturm Graz,0,1
|
51
|
+
2016/2017,02/10/16,18:00,Austria Vienna,St. Polten,2,1
|
52
|
+
2016/2017,15/10/16,15:00,AC Wolfsberger,Salzburg,2,2
|
53
|
+
2016/2017,15/10/16,17:30,Admira,St. Polten,1,1
|
54
|
+
2016/2017,15/10/16,17:30,Rapid Vienna,Altach,1,1
|
55
|
+
2016/2017,15/10/16,17:30,Sturm Graz,Ried,1,0
|
56
|
+
2016/2017,16/10/16,15:30,Mattersburg,Austria Vienna,0,2
|
57
|
+
2016/2017,22/10/16,15:00,Sturm Graz,Mattersburg,2,2
|
58
|
+
2016/2017,22/10/16,17:30,Altach,Admira,2,0
|
59
|
+
2016/2017,22/10/16,17:30,Ried,AC Wolfsberger,0,1
|
60
|
+
2016/2017,23/10/16,13:00,St. Polten,Salzburg,1,5
|
61
|
+
2016/2017,23/10/16,15:30,Rapid Vienna,Austria Vienna,0,2
|
62
|
+
2016/2017,29/10/16,15:00,Admira,Rapid Vienna,1,2
|
63
|
+
2016/2017,29/10/16,17:30,AC Wolfsberger,Mattersburg,3,0
|
64
|
+
2016/2017,29/10/16,17:30,Salzburg,Ried,1,0
|
65
|
+
2016/2017,29/10/16,17:30,St. Polten,Altach,0,1
|
66
|
+
2016/2017,30/10/16,15:30,Austria Vienna,Sturm Graz,2,0
|
67
|
+
2016/2017,05/11/16,15:00,Sturm Graz,St. Polten,1,2
|
68
|
+
2016/2017,05/11/16,17:30,Ried,Admira,2,1
|
69
|
+
2016/2017,06/11/16,13:00,Rapid Vienna,AC Wolfsberger,0,1
|
70
|
+
2016/2017,06/11/16,15:30,Altach,Austria Vienna,5,1
|
71
|
+
2016/2017,06/11/16,15:30,Mattersburg,Salzburg,2,1
|
72
|
+
2016/2017,19/11/16,15:00,Altach,Sturm Graz,1,1
|
73
|
+
2016/2017,19/11/16,17:30,Admira,AC Wolfsberger,4,1
|
74
|
+
2016/2017,19/11/16,17:30,Austria Vienna,Ried,2,0
|
75
|
+
2016/2017,19/11/16,17:30,St. Polten,Mattersburg,2,2
|
76
|
+
2016/2017,20/11/16,15:30,Salzburg,Rapid Vienna,2,1
|
77
|
+
2016/2017,26/11/16,15:00,Ried,St. Polten,1,2
|
78
|
+
2016/2017,26/11/16,17:30,Mattersburg,Altach,1,2
|
79
|
+
2016/2017,27/11/16,13:00,AC Wolfsberger,Austria Vienna,0,3
|
80
|
+
2016/2017,27/11/16,15:30,Rapid Vienna,Sturm Graz,1,2
|
81
|
+
2016/2017,27/11/16,15:30,Salzburg,Admira,0,1
|
82
|
+
2016/2017,29/11/16,18:00,Altach,Ried,1,0
|
83
|
+
2016/2017,30/11/16,19:30,Austria Vienna,Salzburg,1,3
|
84
|
+
2016/2017,30/11/16,19:30,Mattersburg,Rapid Vienna,1,1
|
85
|
+
2016/2017,30/11/16,19:30,St. Polten,AC Wolfsberger,0,4
|
86
|
+
2016/2017,30/11/16,19:30,Sturm Graz,Admira,0,2
|
87
|
+
2016/2017,03/12/16,15:00,Rapid Vienna,St. Polten,1,0
|
88
|
+
2016/2017,03/12/16,17:30,Admira,Austria Vienna,0,2
|
89
|
+
2016/2017,03/12/16,17:30,Ried,Mattersburg,2,1
|
90
|
+
2016/2017,03/12/16,17:30,Salzburg,Altach,4,1
|
91
|
+
2016/2017,04/12/16,15:30,AC Wolfsberger,Sturm Graz,0,4
|
92
|
+
2016/2017,10/12/16,15:00,Altach,AC Wolfsberger,2,1
|
93
|
+
2016/2017,10/12/16,17:30,Mattersburg,Admira,2,0
|
94
|
+
2016/2017,11/12/16,13:00,Rapid Vienna,Ried,3,1
|
95
|
+
2016/2017,11/12/16,15:30,Sturm Graz,Salzburg,0,1
|
96
|
+
2016/2017,12/12/16,15:30,St. Polten,Austria Vienna,2,1
|
97
|
+
2016/2017,17/12/16,15:00,Ried,Sturm Graz,0,3
|
98
|
+
2016/2017,17/12/16,17:30,Austria Vienna,Mattersburg,2,0
|
99
|
+
2016/2017,17/12/16,17:30,Salzburg,AC Wolfsberger,3,0
|
100
|
+
2016/2017,17/12/16,17:30,St. Polten,Admira,2,2
|
101
|
+
2016/2017,18/12/16,15:30,Altach,Rapid Vienna,3,1
|
102
|
+
2016/2017,11/02/17,15:00,Admira,Altach,1,1
|
103
|
+
2016/2017,11/02/17,17:30,AC Wolfsberger,Ried,1,0
|
104
|
+
2016/2017,11/02/17,17:30,Mattersburg,Sturm Graz,1,0
|
105
|
+
2016/2017,11/02/17,17:30,Salzburg,St. Polten,2,0
|
106
|
+
2016/2017,12/02/17,15:30,Austria Vienna,Rapid Vienna,1,1
|
107
|
+
2016/2017,18/02/17,15:00,Sturm Graz,Austria Vienna,0,4
|
108
|
+
2016/2017,18/02/17,17:30,Altach,St. Polten,1,2
|
109
|
+
2016/2017,18/02/17,17:30,Mattersburg,AC Wolfsberger,2,1
|
110
|
+
2016/2017,18/02/17,17:30,Rapid Vienna,Admira,0,0
|
111
|
+
2016/2017,19/02/17,15:30,Ried,Salzburg,1,6
|
112
|
+
2016/2017,25/02/17,15:00,AC Wolfsberger,Rapid Vienna,2,1
|
113
|
+
2016/2017,25/02/17,17:30,Admira,Ried,1,0
|
114
|
+
2016/2017,25/02/17,17:30,Austria Vienna,Altach,1,3
|
115
|
+
2016/2017,25/02/17,17:30,Salzburg,Mattersburg,1,0
|
116
|
+
2016/2017,26/02/17,15:30,St. Polten,Sturm Graz,2,1
|
117
|
+
2016/2017,04/03/17,15:00,Sturm Graz,Altach,3,0
|
118
|
+
2016/2017,04/03/17,17:30,AC Wolfsberger,Admira,1,1
|
119
|
+
2016/2017,04/03/17,17:30,Mattersburg,St. Polten,1,0
|
120
|
+
2016/2017,04/03/17,17:30,Ried,Austria Vienna,0,3
|
121
|
+
2016/2017,05/03/17,15:30,Rapid Vienna,Salzburg,0,1
|
122
|
+
2016/2017,11/03/17,15:00,St. Polten,Ried,1,0
|
123
|
+
2016/2017,11/03/17,17:30,Admira,Salzburg,1,1
|
124
|
+
2016/2017,11/03/17,17:30,Altach,Mattersburg,3,0
|
125
|
+
2016/2017,11/03/17,17:30,Austria Vienna,AC Wolfsberger,3,0
|
126
|
+
2016/2017,12/03/17,15:30,Sturm Graz,Rapid Vienna,2,1
|
127
|
+
2016/2017,18/03/17,15:00,Rapid Vienna,Mattersburg,1,1
|
128
|
+
2016/2017,18/03/17,17:30,AC Wolfsberger,St. Polten,1,0
|
129
|
+
2016/2017,18/03/17,17:30,Admira,Sturm Graz,1,0
|
130
|
+
2016/2017,18/03/17,17:30,Ried,Altach,2,0
|
131
|
+
2016/2017,19/03/17,15:30,Salzburg,Austria Vienna,5,0
|
132
|
+
2016/2017,01/04/17,15:00,St. Polten,Rapid Vienna,1,1
|
133
|
+
2016/2017,01/04/17,17:30,Austria Vienna,Admira,0,2
|
134
|
+
2016/2017,01/04/17,17:30,Mattersburg,Ried,2,1
|
135
|
+
2016/2017,01/04/17,17:30,Sturm Graz,AC Wolfsberger,4,0
|
136
|
+
2016/2017,02/04/17,15:30,Altach,Salzburg,0,5
|
137
|
+
2016/2017,08/04/17,15:00,Ried,Rapid Vienna,3,0
|
138
|
+
2016/2017,08/04/17,17:30,AC Wolfsberger,Altach,0,0
|
139
|
+
2016/2017,08/04/17,17:30,Admira,Mattersburg,0,2
|
140
|
+
2016/2017,08/04/17,17:30,Austria Vienna,St. Polten,1,2
|
141
|
+
2016/2017,09/04/17,15:30,Salzburg,Sturm Graz,1,0
|
142
|
+
2016/2017,15/04/17,15:00,AC Wolfsberger,Salzburg,0,2
|
143
|
+
2016/2017,15/04/17,17:30,Admira,St. Polten,2,0
|
144
|
+
2016/2017,15/04/17,17:30,Rapid Vienna,Altach,3,0
|
145
|
+
2016/2017,15/04/17,17:30,Sturm Graz,Ried,1,0
|
146
|
+
2016/2017,16/04/17,14:00,Mattersburg,Austria Vienna,0,3
|
147
|
+
2016/2017,22/04/17,15:00,Sturm Graz,Mattersburg,0,2
|
148
|
+
2016/2017,22/04/17,17:30,Altach,Admira,0,0
|
149
|
+
2016/2017,22/04/17,17:30,Ried,AC Wolfsberger,1,1
|
150
|
+
2016/2017,22/04/17,17:30,St. Polten,Salzburg,1,2
|
151
|
+
2016/2017,23/04/17,15:30,Rapid Vienna,Austria Vienna,0,2
|
152
|
+
2016/2017,29/04/17,15:00,Austria Vienna,Sturm Graz,4,1
|
153
|
+
2016/2017,29/04/17,17:30,AC Wolfsberger,Mattersburg,2,2
|
154
|
+
2016/2017,29/04/17,17:30,Salzburg,Ried,1,1
|
155
|
+
2016/2017,29/04/17,17:30,St. Polten,Altach,3,3
|
156
|
+
2016/2017,30/04/17,15:30,Admira,Rapid Vienna,3,2
|
157
|
+
2016/2017,06/05/17,15:00,Mattersburg,Salzburg,2,1
|
158
|
+
2016/2017,06/05/17,17:30,Rapid Vienna,AC Wolfsberger,4,0
|
159
|
+
2016/2017,06/05/17,17:30,Ried,Admira,1,0
|
160
|
+
2016/2017,06/05/17,17:30,Sturm Graz,St. Polten,3,2
|
161
|
+
2016/2017,07/05/17,15:30,Altach,Austria Vienna,1,1
|
162
|
+
2016/2017,13/05/17,15:00,Salzburg,Rapid Vienna,1,0
|
163
|
+
2016/2017,13/05/17,17:30,Admira,AC Wolfsberger,3,2
|
164
|
+
2016/2017,13/05/17,17:30,Austria Vienna,Ried,3,0
|
165
|
+
2016/2017,13/05/17,17:30,St. Polten,Mattersburg,1,0
|
166
|
+
2016/2017,14/05/17,15:30,Altach,Sturm Graz,1,2
|
167
|
+
2016/2017,20/05/17,15:00,Ried,St. Polten,1,1
|
168
|
+
2016/2017,20/05/17,17:30,AC Wolfsberger,Austria Vienna,2,1
|
169
|
+
2016/2017,20/05/17,17:30,Mattersburg,Altach,1,0
|
170
|
+
2016/2017,20/05/17,17:30,Salzburg,Admira,2,0
|
171
|
+
2016/2017,21/05/17,15:30,Rapid Vienna,Sturm Graz,1,0
|
172
|
+
2016/2017,25/05/17,15:30,Altach,Ried,0,2
|
173
|
+
2016/2017,25/05/17,15:30,Austria Vienna,Salzburg,2,3
|
174
|
+
2016/2017,25/05/17,15:30,Mattersburg,Rapid Vienna,1,3
|
175
|
+
2016/2017,25/05/17,15:30,St. Polten,AC Wolfsberger,1,1
|
176
|
+
2016/2017,25/05/17,15:30,Sturm Graz,Admira,2,1
|
177
|
+
2016/2017,28/05/17,15:30,AC Wolfsberger,Sturm Graz,1,0
|
178
|
+
2016/2017,28/05/17,15:30,Admira,Austria Vienna,1,6
|
179
|
+
2016/2017,28/05/17,15:30,Rapid Vienna,St. Polten,2,1
|
180
|
+
2016/2017,28/05/17,15:30,Ried,Mattersburg,2,3
|
181
|
+
2016/2017,28/05/17,15:30,Salzburg,Altach,1,0
|
182
|
+
2017/2018,22/07/17,15:00,Rapid Vienna,Mattersburg,2,2
|
183
|
+
2017/2018,22/07/17,17:30,AC Wolfsberger,Salzburg,0,2
|
184
|
+
2017/2018,22/07/17,17:30,LASK Linz,Admira,3,0
|
185
|
+
2017/2018,23/07/17,15:30,Altach,Austria Vienna,3,0
|
186
|
+
2017/2018,23/07/17,18:00,Sturm Graz,St. Polten,3,2
|
187
|
+
2017/2018,29/07/17,15:00,Salzburg,LASK Linz,1,1
|
188
|
+
2017/2018,29/07/17,17:30,Mattersburg,AC Wolfsberger,1,0
|
189
|
+
2017/2018,29/07/17,17:30,St. Polten,Rapid Vienna,1,4
|
190
|
+
2017/2018,30/07/17,15:00,Austria Vienna,Sturm Graz,2,3
|
191
|
+
2017/2018,30/07/17,17:30,Admira,Altach,4,1
|
192
|
+
2017/2018,05/08/17,15:00,LASK Linz,St. Polten,2,0
|
193
|
+
2017/2018,05/08/17,17:30,Salzburg,Admira,5,1
|
194
|
+
2017/2018,06/08/17,15:30,AC Wolfsberger,Altach,1,0
|
195
|
+
2017/2018,06/08/17,15:30,Rapid Vienna,Austria Vienna,2,2
|
196
|
+
2017/2018,06/08/17,18:00,Mattersburg,Sturm Graz,2,3
|
197
|
+
2017/2018,12/08/17,15:00,Altach,Salzburg,0,1
|
198
|
+
2017/2018,12/08/17,17:30,Austria Vienna,LASK Linz,2,0
|
199
|
+
2017/2018,12/08/17,17:30,St. Polten,Mattersburg,0,0
|
200
|
+
2017/2018,12/08/17,17:30,Sturm Graz,AC Wolfsberger,2,1
|
201
|
+
2017/2018,13/08/17,15:30,Admira,Rapid Vienna,3,1
|
202
|
+
2017/2018,19/08/17,15:00,Rapid Vienna,Sturm Graz,1,2
|
203
|
+
2017/2018,19/08/17,17:30,AC Wolfsberger,Admira,2,0
|
204
|
+
2017/2018,20/08/17,15:30,LASK Linz,Altach,0,0
|
205
|
+
2017/2018,20/08/17,15:30,Salzburg,St. Polten,5,1
|
206
|
+
2017/2018,20/08/17,18:00,Mattersburg,Austria Vienna,1,3
|
207
|
+
2017/2018,26/08/17,15:00,AC Wolfsberger,St. Polten,2,1
|
208
|
+
2017/2018,26/08/17,17:30,Rapid Vienna,LASK Linz,1,0
|
209
|
+
2017/2018,27/08/17,15:30,Altach,Mattersburg,1,0
|
210
|
+
2017/2018,27/08/17,15:30,Sturm Graz,Salzburg,1,0
|
211
|
+
2017/2018,27/08/17,18:00,Admira,Austria Vienna,1,3
|
212
|
+
2017/2018,09/09/17,15:00,LASK Linz,Sturm Graz,2,1
|
213
|
+
2017/2018,09/09/17,17:30,Austria Vienna,AC Wolfsberger,2,2
|
214
|
+
2017/2018,09/09/17,17:30,Mattersburg,Admira,0,5
|
215
|
+
2017/2018,09/09/17,17:30,St. Polten,Altach,1,2
|
216
|
+
2017/2018,10/09/17,15:30,Salzburg,Rapid Vienna,2,2
|
217
|
+
2017/2018,16/09/17,15:00,Altach,Rapid Vienna,2,2
|
218
|
+
2017/2018,16/09/17,17:30,AC Wolfsberger,LASK Linz,0,0
|
219
|
+
2017/2018,16/09/17,17:30,Admira,Sturm Graz,2,1
|
220
|
+
2017/2018,17/09/17,15:30,Mattersburg,Salzburg,1,2
|
221
|
+
2017/2018,17/09/17,18:00,Austria Vienna,St. Polten,5,1
|
222
|
+
2017/2018,23/09/17,15:00,Rapid Vienna,AC Wolfsberger,4,2
|
223
|
+
2017/2018,23/09/17,17:30,LASK Linz,Mattersburg,2,2
|
224
|
+
2017/2018,23/09/17,17:30,St. Polten,Admira,1,1
|
225
|
+
2017/2018,23/09/17,17:30,Sturm Graz,Altach,0,0
|
226
|
+
2017/2018,24/09/17,15:30,Salzburg,Austria Vienna,0,0
|
227
|
+
2017/2018,30/09/17,15:00,St. Polten,Sturm Graz,0,3
|
228
|
+
2017/2018,30/09/17,17:30,Admira,LASK Linz,4,2
|
229
|
+
2017/2018,30/09/17,17:30,Mattersburg,Rapid Vienna,0,1
|
230
|
+
2017/2018,01/10/17,15:30,Austria Vienna,Altach,2,0
|
231
|
+
2017/2018,01/10/17,18:00,Salzburg,AC Wolfsberger,2,1
|
232
|
+
2017/2018,14/10/17,15:00,LASK Linz,Salzburg,1,3
|
233
|
+
2017/2018,14/10/17,17:30,AC Wolfsberger,Mattersburg,2,2
|
234
|
+
2017/2018,14/10/17,17:30,Altach,Admira,2,2
|
235
|
+
2017/2018,14/10/17,17:30,Rapid Vienna,St. Polten,1,0
|
236
|
+
2017/2018,15/10/17,15:30,Sturm Graz,Austria Vienna,3,0
|
237
|
+
2017/2018,21/10/17,15:00,Sturm Graz,Mattersburg,3,2
|
238
|
+
2017/2018,21/10/17,17:30,Altach,AC Wolfsberger,3,2
|
239
|
+
2017/2018,21/10/17,17:30,St. Polten,LASK Linz,0,1
|
240
|
+
2017/2018,22/10/17,13:00,Admira,Salzburg,1,1
|
241
|
+
2017/2018,22/10/17,15:30,Austria Vienna,Rapid Vienna,0,1
|
242
|
+
2017/2018,28/10/17,15:00,Rapid Vienna,Admira,1,0
|
243
|
+
2017/2018,28/10/17,17:30,LASK Linz,Austria Vienna,2,2
|
244
|
+
2017/2018,28/10/17,17:30,Mattersburg,St. Polten,1,1
|
245
|
+
2017/2018,28/10/17,17:30,Salzburg,Altach,2,0
|
246
|
+
2017/2018,29/10/17,15:30,AC Wolfsberger,Sturm Graz,0,2
|
247
|
+
2017/2018,04/11/17,15:00,Sturm Graz,Rapid Vienna,0,0
|
248
|
+
2017/2018,04/11/17,17:30,Admira,AC Wolfsberger,0,0
|
249
|
+
2017/2018,04/11/17,17:30,Altach,LASK Linz,2,4
|
250
|
+
2017/2018,05/11/17,13:00,Austria Vienna,Mattersburg,1,3
|
251
|
+
2017/2018,05/11/17,15:30,St. Polten,Salzburg,1,3
|
252
|
+
2017/2018,18/11/17,15:00,LASK Linz,Rapid Vienna,1,2
|
253
|
+
2017/2018,18/11/17,17:30,Austria Vienna,Admira,2,3
|
254
|
+
2017/2018,18/11/17,17:30,Mattersburg,Altach,1,0
|
255
|
+
2017/2018,18/11/17,17:30,St. Polten,AC Wolfsberger,0,0
|
256
|
+
2017/2018,19/11/17,15:30,Salzburg,Sturm Graz,5,0
|
257
|
+
2017/2018,25/11/17,15:00,Sturm Graz,LASK Linz,1,0
|
258
|
+
2017/2018,25/11/17,17:30,Admira,Mattersburg,2,0
|
259
|
+
2017/2018,25/11/17,17:30,Altach,St. Polten,3,0
|
260
|
+
2017/2018,26/11/17,13:00,AC Wolfsberger,Austria Vienna,1,2
|
261
|
+
2017/2018,26/11/17,15:30,Rapid Vienna,Salzburg,2,3
|
262
|
+
2017/2018,28/11/17,18:00,Sturm Graz,Admira,6,1
|
263
|
+
2017/2018,29/11/17,17:30,LASK Linz,AC Wolfsberger,2,0
|
264
|
+
2017/2018,29/11/17,17:30,Salzburg,Mattersburg,2,0
|
265
|
+
2017/2018,29/11/17,17:30,St. Polten,Austria Vienna,1,0
|
266
|
+
2017/2018,29/11/17,19:30,Rapid Vienna,Altach,1,2
|
267
|
+
2017/2018,02/12/17,15:00,AC Wolfsberger,Rapid Vienna,0,0
|
268
|
+
2017/2018,02/12/17,17:30,Admira,St. Polten,1,0
|
269
|
+
2017/2018,02/12/17,17:30,Altach,Sturm Graz,1,2
|
270
|
+
2017/2018,02/12/17,17:30,Mattersburg,LASK Linz,1,0
|
271
|
+
2017/2018,03/12/17,15:30,Austria Vienna,Salzburg,1,1
|
272
|
+
2017/2018,09/12/17,15:00,Rapid Vienna,Mattersburg,2,2
|
273
|
+
2017/2018,09/12/17,17:30,LASK Linz,Admira,2,1
|
274
|
+
2017/2018,09/12/17,17:30,Sturm Graz,St. Polten,3,2
|
275
|
+
2017/2018,10/12/17,13:00,Altach,Austria Vienna,1,0
|
276
|
+
2017/2018,10/12/17,15:30,AC Wolfsberger,Salzburg,0,0
|
277
|
+
2017/2018,16/12/17,15:00,Salzburg,LASK Linz,0,0
|
278
|
+
2017/2018,16/12/17,17:30,Admira,Altach,3,1
|
279
|
+
2017/2018,16/12/17,17:30,Mattersburg,AC Wolfsberger,5,1
|
280
|
+
2017/2018,16/12/17,17:30,St. Polten,Rapid Vienna,0,5
|
281
|
+
2017/2018,17/12/17,15:30,Austria Vienna,Sturm Graz,1,0
|
282
|
+
2017/2018,03/02/18,15:00,Mattersburg,Sturm Graz,1,0
|
283
|
+
2017/2018,03/02/18,17:30,AC Wolfsberger,Altach,0,0
|
284
|
+
2017/2018,03/02/18,17:30,LASK Linz,St. Polten,2,1
|
285
|
+
2017/2018,03/02/18,17:30,Salzburg,Admira,2,1
|
286
|
+
2017/2018,04/02/18,15:30,Rapid Vienna,Austria Vienna,1,1
|
287
|
+
2017/2018,10/02/18,15:00,Altach,Salzburg,0,1
|
288
|
+
2017/2018,10/02/18,17:30,Austria Vienna,LASK Linz,1,3
|
289
|
+
2017/2018,10/02/18,17:30,St. Polten,Mattersburg,0,3
|
290
|
+
2017/2018,10/02/18,17:30,Sturm Graz,AC Wolfsberger,0,1
|
291
|
+
2017/2018,11/02/18,15:30,Admira,Rapid Vienna,2,1
|
292
|
+
2017/2018,17/02/18,15:00,Rapid Vienna,Sturm Graz,1,1
|
293
|
+
2017/2018,17/02/18,17:30,AC Wolfsberger,Admira,1,3
|
294
|
+
2017/2018,17/02/18,17:30,LASK Linz,Altach,2,0
|
295
|
+
2017/2018,17/02/18,17:30,Mattersburg,Austria Vienna,2,1
|
296
|
+
2017/2018,18/02/18,15:30,Salzburg,St. Polten,4,0
|
297
|
+
2017/2018,24/02/18,15:00,Admira,Austria Vienna,2,1
|
298
|
+
2017/2018,24/02/18,17:30,AC Wolfsberger,St. Polten,0,1
|
299
|
+
2017/2018,24/02/18,17:30,Altach,Mattersburg,1,1
|
300
|
+
2017/2018,24/02/18,17:30,Rapid Vienna,LASK Linz,2,0
|
301
|
+
2017/2018,25/02/18,15:30,Sturm Graz,Salzburg,2,4
|
302
|
+
2017/2018,03/03/18,15:00,LASK Linz,Sturm Graz,0,2
|
303
|
+
2017/2018,03/03/18,17:30,Austria Vienna,AC Wolfsberger,2,0
|
304
|
+
2017/2018,03/03/18,17:30,Mattersburg,Admira,3,2
|
305
|
+
2017/2018,03/03/18,17:30,St. Polten,Altach,1,2
|
306
|
+
2017/2018,04/03/18,15:30,Salzburg,Rapid Vienna,1,0
|
307
|
+
2017/2018,10/03/18,15:00,Altach,Rapid Vienna,0,0
|
308
|
+
2017/2018,10/03/18,17:30,AC Wolfsberger,LASK Linz,0,3
|
309
|
+
2017/2018,10/03/18,17:30,Admira,Sturm Graz,2,4
|
310
|
+
2017/2018,10/03/18,17:30,Austria Vienna,St. Polten,4,0
|
311
|
+
2017/2018,11/03/18,15:30,Mattersburg,Salzburg,2,2
|
312
|
+
2017/2018,17/03/18,15:00,Rapid Vienna,AC Wolfsberger,5,1
|
313
|
+
2017/2018,17/03/18,17:30,LASK Linz,Mattersburg,3,1
|
314
|
+
2017/2018,17/03/18,17:30,St. Polten,Admira,1,2
|
315
|
+
2017/2018,17/03/18,17:30,Sturm Graz,Altach,1,0
|
316
|
+
2017/2018,18/03/18,13:30,Salzburg,Austria Vienna,5,0
|
317
|
+
2017/2018,31/03/18,15:00,Admira,LASK Linz,0,1
|
318
|
+
2017/2018,31/03/18,17:30,Austria Vienna,Altach,2,1
|
319
|
+
2017/2018,31/03/18,17:30,Salzburg,AC Wolfsberger,2,0
|
320
|
+
2017/2018,31/03/18,17:30,St. Polten,Sturm Graz,1,5
|
321
|
+
2017/2018,01/04/18,15:30,Mattersburg,Rapid Vienna,2,4
|
322
|
+
2017/2018,07/04/18,15:00,Sturm Graz,Austria Vienna,0,2
|
323
|
+
2017/2018,07/04/18,17:30,AC Wolfsberger,Mattersburg,0,2
|
324
|
+
2017/2018,07/04/18,17:30,Altach,Admira,1,2
|
325
|
+
2017/2018,07/04/18,17:30,Rapid Vienna,St. Polten,2,1
|
326
|
+
2017/2018,08/04/18,14:00,LASK Linz,Salzburg,1,0
|
327
|
+
2017/2018,14/04/18,15:00,Sturm Graz,Mattersburg,3,0
|
328
|
+
2017/2018,14/04/18,17:30,Altach,AC Wolfsberger,2,1
|
329
|
+
2017/2018,14/04/18,17:30,St. Polten,LASK Linz,1,3
|
330
|
+
2017/2018,15/04/18,15:30,Austria Vienna,Rapid Vienna,0,4
|
331
|
+
2017/2018,15/04/18,18:00,Admira,Salzburg,2,6
|
332
|
+
2017/2018,21/04/18,15:00,AC Wolfsberger,Sturm Graz,2,1
|
333
|
+
2017/2018,21/04/18,17:30,LASK Linz,Austria Vienna,1,0
|
334
|
+
2017/2018,21/04/18,17:30,Mattersburg,St. Polten,1,1
|
335
|
+
2017/2018,22/04/18,13:30,Salzburg,Altach,3,1
|
336
|
+
2017/2018,22/04/18,15:30,Rapid Vienna,Admira,4,1
|
337
|
+
2017/2018,28/04/18,15:00,Austria Vienna,Mattersburg,2,3
|
338
|
+
2017/2018,28/04/18,17:30,Admira,AC Wolfsberger,4,2
|
339
|
+
2017/2018,28/04/18,17:30,Altach,LASK Linz,0,2
|
340
|
+
2017/2018,29/04/18,15:30,Sturm Graz,Rapid Vienna,4,2
|
341
|
+
2017/2018,29/04/18,18:00,St. Polten,Salzburg,0,2
|
342
|
+
2017/2018,05/05/18,15:00,LASK Linz,Rapid Vienna,0,2
|
343
|
+
2017/2018,05/05/18,17:30,Austria Vienna,Admira,0,0
|
344
|
+
2017/2018,05/05/18,17:30,Mattersburg,Altach,0,1
|
345
|
+
2017/2018,05/05/18,17:30,St. Polten,AC Wolfsberger,0,1
|
346
|
+
2017/2018,06/05/18,15:30,Salzburg,Sturm Graz,4,1
|
347
|
+
2017/2018,12/05/18,15:00,Sturm Graz,LASK Linz,3,1
|
348
|
+
2017/2018,12/05/18,17:30,Admira,Mattersburg,1,1
|
349
|
+
2017/2018,12/05/18,17:30,Altach,St. Polten,1,3
|
350
|
+
2017/2018,13/05/18,15:30,Rapid Vienna,Salzburg,1,4
|
351
|
+
2017/2018,15/05/18,18:00,AC Wolfsberger,Austria Vienna,2,1
|
352
|
+
2017/2018,20/05/18,15:30,LASK Linz,AC Wolfsberger,1,3
|
353
|
+
2017/2018,20/05/18,15:30,Rapid Vienna,Altach,4,1
|
354
|
+
2017/2018,20/05/18,15:30,Salzburg,Mattersburg,1,0
|
355
|
+
2017/2018,20/05/18,15:30,St. Polten,Austria Vienna,2,0
|
356
|
+
2017/2018,20/05/18,15:30,Sturm Graz,Admira,2,0
|
357
|
+
2017/2018,27/05/18,16:30,AC Wolfsberger,Rapid Vienna,0,0
|
358
|
+
2017/2018,27/05/18,16:30,Admira,St. Polten,0,2
|
359
|
+
2017/2018,27/05/18,16:30,Altach,Sturm Graz,0,0
|
360
|
+
2017/2018,27/05/18,16:30,Austria Vienna,Salzburg,4,0
|
361
|
+
2017/2018,27/05/18,16:30,Mattersburg,LASK Linz,2,1
|
362
|
+
2017/2018,31/05/18,17:30,Neustadt,St. Polten,0,2
|
363
|
+
2017/2018,03/06/18,14:30,St. Polten,Neustadt,1,1
|