'pandas add columns when read from a csv file

I want to read from a CSV file using pandas read_csv. The CSV file doesn't have column names. When I use pandas to read the CSV file, the first row is set as columns by default. But when I use df.columns = ['ID', 'CODE'], the first row is gone. I want to add, not replace.

df = pd.read_csv(CSV)
df

    a   55000G707270
0   b   5l0000D35270
1   c   5l0000D63630
2   d   5l0000G45630
3   e   5l000G191200
4   f   55000G703240


df.columns=['ID','CODE']
df

    ID          CODE
0   b   5l0000D35270
1   c   5l0000D63630
2   d   5l0000G45630
3   e   5l000G191200
4   f   55000G703240


Solution 1:[1]

You may pass the column names at the time of reading the csv file itself as :

df = pd.read_csv(csv_path, names = ["ID", "CODE"])

Solution 2:[2]

Use names argument in function call to add the columns yourself:

df = pd.read_csv(CSV, names=['ID','CODE'])

Solution 3:[3]

you need both: header=None and names=['ID','CODE'], because there are no column names/labels/headers in your CSV file:

df = pd.read_csv(CSV, header=None, names=['ID','CODE'])

Solution 4:[4]

The reason there are extra index columns add is because to_csv() writes an index per default, so you can either disable index when saving your CSV:

df.to_csv('file.csv', index=False)

or you can specify an index column when reading:

df = pd.read_csv('file.csv', index_col=0)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 ZdaR
Solution 2 Carles Mitjans
Solution 3 MaxU - stop genocide of UA
Solution 4 Ando