> ## Documentation Index
> Fetch the complete documentation index at: https://docs.edgeimpulse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CSV Wizard

The CSV Wizard allows users with larger or more complex datasets to easily upload their data without having to worry about converting it to the [data acquisition format](/tools/specifications/data-acquisition/json-cbor) by creating a configuration file that will be applied to all future data uploads.

The CSV Wizard supports uploading reference CSV, TXT, and Parquet ( `.csv`, `.txt`, and `.parquet`) files to create a configuration file, or uploading an existing JSON configuration file, making it a versatile tool for data ingestion.

<Frame caption="Edge Impulse Studio CSV Wizard">
  <img src="https://mintcdn.com/edgeimpulse/R3jFDxWWP_x_LgQ4/.assets/images/csv-wizard-step-1.png?fit=max&auto=format&n=R3jFDxWWP_x_LgQ4&q=85&s=8713805f5517116e23cceeff9a56f69c" width="1539" height="1000" data-path=".assets/images/csv-wizard-step-1.png" />
</Frame>

## Using the CSV Wizard

<Info>
  **The CSV Wizard creates a configuration for future data uploads**

  Going through the CSV Wizard creates a configuration file that will be applied to all future data uploads. After creating the configuration, you must still upload your data. You can upload as many data files as needed and the configuration will be automatically applied.
</Info>

To access the CSV Wizard, navigate to the **Data acquisition** view of your Edge Impulse project and click on the CSV Wizard tab.

We will take a look at some sample data to see how the CSV Wizard works. A very basic CSV file was created to walk through the steps below. You can follow along with your own data or use the sample data provided:

```
timestamp,label,subject,site,ax,ay,az
0,walking,p1,lab,0.12,0.34,0.56
16,walking,p1,lab,0.22,0.31,0.61
32,running,p2,field,1.12,1.34,1.56
48,running,p2,field,1.22,1.31,1.61
```

### Step 1: Upload a file

<Frame caption="CSV Wizard - Step 1: Upload a file">
  <img src="https://mintcdn.com/edgeimpulse/R3jFDxWWP_x_LgQ4/.assets/images/csv-wizard-step-1.png?fit=max&auto=format&n=R3jFDxWWP_x_LgQ4&q=85&s=8713805f5517116e23cceeff9a56f69c" width="1539" height="1000" data-path=".assets/images/csv-wizard-step-1.png" />
</Frame>

Choose a CSV, TXT, or Parquet file that is representative of your data, then click the `Upload file` button. The file will be automatically analyzed and the results will be displayed in the next step.

Alternatively, if you have previously gone through the CSV Wizard and already have a JSON configuration file you would like to reuse, you can upload it in this step to apply the configuration to your project.

### Step 2: Process the file

<Frame caption="CSV Wizard - Step 2: Process the file">
  <img src="https://mintcdn.com/edgeimpulse/R3jFDxWWP_x_LgQ4/.assets/images/csv-wizard-step-2.png?fit=max&auto=format&n=R3jFDxWWP_x_LgQ4&q=85&s=30c7590c462d1bc2ee8d087978c5b92d" width="1539" height="1000" data-path=".assets/images/csv-wizard-step-2.png" />
</Frame>

The file you upload is processed and presented to ensure that it looks accurate before moving on to future steps. At this point, you can specify the delimiter, how many lines to skip at the start of the file, and whether there is no header row.

When you are satisfied that the file is being processed correctly, click the `Looks good, next` button to move on to the next step.

### Step 3: About your data

<Frame caption="CSV Wizard - Step 3: About your data">
  <img src="https://mintcdn.com/edgeimpulse/R3jFDxWWP_x_LgQ4/.assets/images/csv-wizard-step-3.png?fit=max&auto=format&n=R3jFDxWWP_x_LgQ4&q=85&s=fe069f3dd8669c0ec78825b7f268d974" width="1539" height="1000" data-path=".assets/images/csv-wizard-step-3.png" />
</Frame>

In this step you are able to specify some more information about the structure of your data, specifically if this is time-series data or not.

If it is time-series data, you will be presented with further configuration options where you can specify how the samples are arranged, the timestamp column, frequency of the timestamps, etc. This is important for correctly interpreting the data and ensuring that it is processed correctly in future steps.

Click the `Great, let's look at your values` button to move on to the next step.

### Step 4: About your values

<Frame caption="CSV Wizard - Step 4: About your values">
  <img src="https://mintcdn.com/edgeimpulse/R3jFDxWWP_x_LgQ4/.assets/images/csv-wizard-step-4.png?fit=max&auto=format&n=R3jFDxWWP_x_LgQ4&q=85&s=33300c9061f3adfa4d3153ab2e7e0dbd" width="1539" height="1000" data-path=".assets/images/csv-wizard-step-4.png" />
</Frame>

In this step, you can specify what information is contained in your CSV file, specifically which columns contain your values, labels, and metadata.

If your CSV file contains metadata, and multiple rows will be grouped into a single generated sample in the following step, the metadata value for a given key (the column header) must stay consistent across the grouped rows. If they conflict, the import will fail so that the generated sample does not end up with incorrect metadata.

Once you have completed your selections, click the `Next, split up into samples` button to move on to the next step.

### Step 5: Split up your samples

<Frame caption="CSV Wizard - Step 5: Split up your samples">
  <img src="https://mintcdn.com/edgeimpulse/R3jFDxWWP_x_LgQ4/.assets/images/csv-wizard-step-5.png?fit=max&auto=format&n=R3jFDxWWP_x_LgQ4&q=85&s=b94cb0b54881352bcfb074eef0a6370f" width="1539" height="1000" data-path=".assets/images/csv-wizard-step-5.png" />
</Frame>

In this section, you can set a length limit for generating samples when uploading data.

For example, if you upload a CSV file that contains 30 seconds of data, and had configured a sample length limit of 3,000 ms in this step, the uploaded data would be split to create 10 distinct data samples of 3 seconds.

You must specify how to deal with the label for the split samples, to handle the situation that may arise where one sample split contains rows with different labels. You can choose to use the last label in the sample, or to allow multiple labels for a single sample. For more information about multiple labels for a single sample, see our [Multi-label](/studio/projects/data-acquisition/dataset/multi-label) documentation.

To finalize your configuration, click the `Finish wizard` button.

### Step 6: Finished

<Frame caption="CSV Wizard - Step 6: Finished">
  <img src="https://mintcdn.com/edgeimpulse/R3jFDxWWP_x_LgQ4/.assets/images/csv-wizard-step-6.png?fit=max&auto=format&n=R3jFDxWWP_x_LgQ4&q=85&s=edbddf71e3788e201f1b3d97370f7dd3" width="1539" height="1000" data-path=".assets/images/csv-wizard-step-6.png" />
</Frame>

Congratulations! You have successfully created a configuration file with the CSV Wizard. 🚀

Data files that you upload into your project in future - whether it's through the uploader, the CLI, the API or through data sources - will now be processed according to the configuration you set up with the CSV Wizard.

## Downloading your CSV Wizard configuration

<Frame caption="CSV Wizard saved configuration">
  <img src="https://mintcdn.com/edgeimpulse/R3jFDxWWP_x_LgQ4/.assets/images/csv-wizard-saved-config.png?fit=max&auto=format&n=R3jFDxWWP_x_LgQ4&q=85&s=9f5c318bc12ddc2b09bc1a946b80ec1b" width="1539" height="1000" data-path=".assets/images/csv-wizard-saved-config.png" />
</Frame>

When you return to the CSV Wizard after creating a configuration, you will see a note at the top of the page indicating that you have an active CSV configuration, along with download links for the CSV file the configuration was created with and the JSON configuration file itself.

<Frame caption="CSV Wizard downloads from project dashboard">
  <img src="https://mintcdn.com/edgeimpulse/R3jFDxWWP_x_LgQ4/.assets/images/csv-wizard-dashboard-downloads.png?fit=max&auto=format&n=R3jFDxWWP_x_LgQ4&q=85&s=64c7246b4db090322c9ae7364e937428" width="1539" height="1000" data-path=".assets/images/csv-wizard-dashboard-downloads.png" />
</Frame>

These files can also be downloaded from your project dashboard under the "Download block output" section. This is useful if you want to reuse a configuration across multiple projects or share it with other users.

## Changing your CSV Wizard configuration

To change your CSV Wizard configuration, simply go back to the CSV Wizard, upload a new reference file and repeat the Wizard steps again or upload an existing JSON configuration file. This will overwrite your current configuration with the new one.

## Troubleshooting

<Accordion title="Azure CSV exports">
  When exporting CSV files from Azure services, you may need to limit your output by selecting a smaller set of subscriptions or time ranges.

  Azure Resource Graph has a limitation of 25,000 rows for CSV exports. Learn more by reading the [Working with large Azure resource data sets](https://learn.microsoft.com/en-us/azure/governance/resource-graph/concepts/work-with-data) documentation.
</Accordion>

<Accordion title="Large CSV files">
  If you're working with large CSV files (over 25,000 rows), you may need to split them into smaller batches before uploading.

  For Windows users, you can use batch scripts or GUI tools to split large CSV files:

  * GUI tool: [Split a Huge CSV/Excel file](https://thegeekpage.com/split-a-huge-csv-excel/)
  * The documentation above also includes batch script examples for automated splitting

  For command-line users, standard shell scripts can be used to split CSV files into manageable chunks before uploading to Edge Impulse.
</Accordion>

## Additional resources

* [Data acquisition](/studio/projects/data-acquisition)
* [Multi-label data](/studio/projects/data-acquisition/dataset/multi-label)
