Dec-03-2021, 06:21 PM
I wrote this:
import pandas as pd cars = pd.DataFrame({'cars_per_cap': [809, 731, 588, 18, 200, 70, 45], 'country': ['United States', 'Australia', 'Japan', 'India', 'Russia', 'Morocco', 'Egypt'], 'drives_right': ['true', 'false', 'false', 'false', 'true', 'true', 'true']}) cars.to_csv('cars.csv') cars2 = pd.read_csv('cars.csv') print(cars2['country'])It produces this output:
Output:0 United States
1 Australia
2 Japan
3 India
4 Russia
5 Morocco
6 Egypt
Name: country, dtype: object
The csv file looks like this:Output:,cars_per_cap,country,drives_right
0,809,United States,true
1,731,Australia,false
2,588,Japan,false
3,18,India,false
4,200,Russia,true
5,70,Morocco,true
6,45,Egypt,true
Not everything is necessary. and the CSV file doesn't need underscores instead of spaces. I edited the CSV file to look like this:Output:cars per cap,country,drives right
809,United States,true
731,Australia,false
588,Japan,false
18,India,false
200,Russia,true
70,Morocco,true
45,Egypt,true
And ran this program:import pandas as pd print(pd.read_csv('cars.csv')['country'])And it produced this output:
Output:0 United States
1 Australia
2 Japan
3 India
4 Russia
5 Morocco
6 Egypt
Name: country, dtype: object
I then modified the CSV file to look like this:Output:cars per cap, country, drives right
809,United States,TRUE
731,Australia,FALSE
588,Japan,FALSE
18,India,FALSE
200,Russia,TRUE
70,Morocco,TRUE
45,Egypt,TRUE
And I get this error:Error:Traceback (most recent call last):
File "...", line 2, in <module>
print(pd.read_csv('cars.csv')['country'])
File "...\lib\site-packages\pandas\core\frame.py", line 3455, in __getitem__
indexer = self.columns.get_loc(key)
File "...\lib\site-packages\pandas\core\indexes\base.py", line 3363, in get_loc
raise KeyError(key) from err
KeyError: 'country'
The dataframe keys are 'cars per cap', ' country', and ' drives right'. The blank I inserted to make the CSV file look pretty is being interpreted as a leading blank in the key name. Could this be your error?