3 years ago

Exercise - Processing CSV files using a dictionary of lists

We defined the functions `read_csv` and `write_csv` above to convert a CSV file into a list of dictionaries and vice versa. In this exercise, you'll transform the CSV data into a dictionary of lists instead, with one list for each column in the file.

For example, consider the following CSV file:

``````amount,duration,rate,down_payment
828400,120,0.11,100000
4633400,240,0.06,
42900,90,0.08,8900
983000,16,0.14,
15230,48,0.07,4300
``````

We'll convert it into the following dictionary of lists:

``````{
amount: [828400, 4633400, 42900, 983000, 15230],
duration: []120, 240, 90, 16, 48],
rate: [0.11, 0.06, 0.08, 0.14, 0.07],
down_payment: [100000, 0, 8900, 0, 4300]
}
``````

Complete the following tasks using the empty cells below:

1. Download three CSV files to the folder `data2` using the URLs listed in the code cell below, and verify the downloaded files.
2. Define a function `read_csv_columnar` that reads a CSV file and returns a dictionary of lists in the format shown above.
3. Define a function `compute_emis` that adds another key `emi` into the dictionary with a list of EMIs computed for each row of data.
4. Define a function `write_csv_columnar` that writes the data from the dictionary of lists into a correctly formatted CSV file.
5. Process all three downloaded files and write the results by creating new files in the directory `data2`.

Define helper functions wherever required.

``````url1 = 'https://gist.githubusercontent.com/aakashns/257f6e6c8719c17d0e498ea287d1a386/raw/7def9ef4234ddf0bc82f855ad67dac8b971852ef/loans1.txt'
``````import os
``'/home/jovyan'``
``os.makedirs('./data2',exist_ok=True)``
``'data2' in os.listdir('.')``
``True``