Skip to content

Commit 202adb8

Browse files
author
Hernán Morales Durand
committed
Read the column names with the reader if the user didn't manually set the columns.
Add necessary setter for columnNames in the reader.
1 parent 9bbfeae commit 202adb8

2 files changed

Lines changed: 23 additions & 1 deletion

File tree

src/DataFrame-IO/DataFrame.extension.st

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,19 @@ DataFrame class >> readFromCsv: aFileReference [
3737
^ self readFrom: aFileReference using: reader
3838
]
3939

40+
{ #category : #'*DataFrame-IO' }
41+
DataFrame class >> readFromCsv: aFileReference withColumnNames: anArrayOfColumnNames separator: aSeparator [
42+
43+
| dataFrame |
44+
45+
dataFrame := DataFrameCsvReader new
46+
separator: aSeparator;
47+
columnNames: anArrayOfColumnNames;
48+
readFrom: aFileReference.
49+
dataFrame calculateDataTypes.
50+
^ dataFrame.
51+
]
52+
4053
{ #category : #'*DataFrame-IO' }
4154
DataFrame class >> readFromCsv: aFileReference withSeparator: aSeparator [
4255
| reader |

src/DataFrame-IO/DataFrameCsvReader.class.st

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ Class {
4242
#category : #'DataFrame-IO-Core'
4343
}
4444

45+
{ #category : #reading }
46+
DataFrameCsvReader >> columnNames: aCollectionOfString [
47+
"Set the receiver' s column names"
48+
49+
columnNames := aCollectionOfString
50+
]
51+
4552
{ #category : #reading }
4653
DataFrameCsvReader >> createDataFrame [
4754
| df |
@@ -91,7 +98,9 @@ DataFrameCsvReader >> initialize [
9198

9299
{ #category : #reading }
93100
DataFrameCsvReader >> readColumnNamesWith: aReader [
94-
columnNames := aReader readHeader.
101+
"Set the receiver's column names if they were not manually set"
102+
103+
columnNames ifNil: [ columnNames := aReader readHeader ].
95104

96105
self includeRowNames ifTrue: [
97106
columnNames := columnNames copyWithoutFirst ]

0 commit comments

Comments
 (0)