Importing Data to Datatable from CSV File: Difference between revisions
Line 28: | Line 28: | ||
{| class="wikitable" | {| class="wikitable" | ||
! '''Data type''' | ! '''Data type''' | ||
! '''Use''' | ! '''Use cases''' | ||
! '''Settings''' | ! '''Settings''' | ||
|- | |- |
Revision as of 23:41, 21 June 2021
This functionality is available from 2021.6.
Data can be imported to datatables from CSV files in the Workspace screen by following these instructions.
When a CSV file is selected, the import tries to interpret the contents of the file and find the suitable data types and other conversion parameters for each column. In some special cases, the automatic data type detection does not work, and then the settings need to be set manually.
The import process can be cancelled. In that case data imported thus far is stored to the datatable.
Import Settings
The data import dialog has the following settings:
- Select CSV file: This button opens the file selector to select the CSV file if you want to change the file.
- Column separator: Column separator character used by the CSV file. The column separator is automatically detected when the file is selected. In some cases, the automatic detection does not find the correct column separator, and this selection allows to change the column separator. If you want to use space as a column separator, select <space>, or if you want to use tabulator, select <tab>. Note that when changing the column separator, all column specific settings in the table are reset. It's also possible to define several characters for a column separator if that is the case in the CSV file.
- Skip errors: Allows to continue the import when encountering errors, and import null values in place of values where the conversion could not be made. If error skipping is not in use, the import stops to the first encountered error. The data conversions are checked entirely before storing data to the datatable, so conversion errors are observed early and they will not lead to partially imported data. When skipping errors, there is a summary of all the encountered errors when the import is completed.
- Character encoding: Character encoding used by the CSV file. Most text files use the UTF-8 encoding which is the default. If some of the characters in the preview table look incorrect, try to change other character encoding to find the correct encoding. Note that there is no automatic detection for the character encoding. Note also that changing the character encoding will reset all column specific settings.
Column Settings
There is a settings section for each column in the CSV file, defining how the data is treated in the import. The title of the column shows the column name in the CSV file.
The following options are possible:
- Import data to a new column in the datatable: Write a column name that doesn't exist in the datatable. When the import is started, the needed new columns are automatically created to the datatable. When importing to a new column, the data type for the new column can be chosen freely.
- Import data to an existing column in the datatable: Choose an existing column in the datatable from the dropdown list. For existing columns, the data type of the column is visible and it cannot be changed, so only that type of data can be imported to the column.
- Not to import the data in the column: When choosing <do not import>, the column is ignored in the import.
Data types
It's very important to set the most suitable data types for each column, as it greatly affects the usage of the data in the analyses. Incorrect data type usually make the analysis impossible. The following data types are available:
Data type | Use cases | Settings |
---|---|---|
String | Data type for textual data. Also suitable for distinct classification values that are not numerical, e.g. "low", "medium", "high". The length of the string is unlimited, but in practice it's more efficient to use shorter strings (e.g. maximum of 100 characters) for process mining purposes. The string data type make a distinction between empty string and null value. The CSV file import does not import any empty strings, as empty data is imported as nulls. |
|
Integer | Data type for whole numbers (i.e. numbers that don't need decimals). Integers are also suitable for storing distinct values that can be ordered (e.g. 1=low, 2=medium, 3=high), which makes it easier to show data in logical order in visualizations. Integers have one advantage over decimal numbers: it's possible to make equality comparisons for integers.
Converted text can contain thousand separators, which are automatically detected. |
|
Decimal number | Data type that stores numerical data with decimals. It's not possible to make equality comparisons for decimal numbers (i.e. equals than, not equals than, less or equal than, greater or equal than). Only more than and less than comparison can be made for example when filtering data.
Converted text can contain thousand separators, which are automatically detected. |
|
Date | Data type stores a precise timestamp, which is an essential data type for process mining. This data type can also be used to store less fine graining time units, such as days, weeks, months or years. In that case the stored timestamp is the point of time in the beginning of the day, week etc. |
|
Boolean | Data type that can contain two values, true and false. The null value is also available (like in other data types) which in practice is the third possible value for boolean data. If only two (or three) distinct values are needed, boolean is the most efficient data type to use. Note that in dashboard visualization, the true and false values can be translated into user understandable texts, such as "yes"/"no" or "is compliant"/"is not compliant" depending on the use case. |
|
Duration | Data type that contains a time duration (e.g. 5 hours, 14 days, 3 seconds, etc.). Duration is close to decimal number, except durations also has the unit natively embedded (thus it doesn't need to be stored separately). Duration type of data is also easy to show in other duration unit with a simple selection in the dashboard. Note that the duration data type does not store information when the duration started or ended, but only the duration itself. Corresponding expression language data type for duration is Timespan. |
|
Date Formats
The date format defines how a text is interpreted as a date. The below listed standard parts identifying e.g. day, month and year part, can be used in the date format. In addition, the date format can contain any other characters which need to exists as such in the text to be converted into date. If the time zone offset is provided, dates are imported as UTC.
Supported date parts:
- yyyy: year as four digits
- yy: year as two digits (the last digits of the year)
- MM: month as two digits (e.g. 01, 02, ... 10, 11, 12)
- M: month as one or two digits (e.g. 1, 2, ... 10, 11, 12)
- dd: day as two digits (e.g. 01, 02, ...)
- d: day as one or two digits (e.g. 1, 2, ... 10, 11, 12, ...)
- HH: hours as two digits based on 24-hour clock (e.g. 00, 01, 02, ... 23)
- H: hours as one or two digits based on 24-hour clock (e.g. 1, 2, ... 23)
- hh: same as HH, except for 12-hour clock
- h: same as H, except for 12-hour clock
- mm: similar as HH except for minutes
- m: similar as H except for minutes
- ss: similar as HH except for seconds
- s: similar as H except for seconds
- fff: 1/1000th of second as three digits (e.g. 000, 001, 002, ... 999)
- ff: 1/100th of second as two digits (e.g. 00, 01, 02, ... 99)
- f: 1/10th of second as one digit (e.g. 0, 1, 2, ... 9)
- aa: either "AM" or "PM" indicating before or after midday (needed when h/hh is used)
- a: either "A" or "P" indicating before or after midday (needed when h/hh is used)
- tt: same as "aa"
- t: same as "a"
- zzz: Timezone offset as hours and minutes in format (+/-)<hours>:<minutes> (e.g. -23:00, -07:00, +00:00, +00:30, +02:00, +23:00)
- zz: Timezone offset hours as two digits preceded by plus/minus (e.g. -23, ..., -01, +00, +01, ... +23)
- z: Timezone offset hours as one or two digits preceded by plus/minus (e.g. -23, ..., -1, +0, +1, ... +23)
Supported CSV Formats
CSV files complying with the following rules can be imported to QPR ProcessAnalyzer:
- Row separator can be: (1) carriage return + line feed, (2) line feed, or (3) carriage return. The entire file needs to use the same row separator consistently. The row separator is automatically detected, and user cannot change the assumed row separator.
- Column separator can be any character or several characters (but it cannot be same as the row separator or the text qualifier character).
- First line of the file contains headers (column names).
- Text qualifier character is the quotation mark ("). All values that contain column separator, line separator, or the text qualifier, need to be enclosed using the text qualifier (text qualifier can also be used in other cases). Text qualifier characters in the values need to be escaped using two text qualifiers ("").
- There must be equal number of columns in each row.
- File cannot start with line breaks.