Arief Hidayat
Arief Hidayat

Reputation: 967

How to add and Rename (No Header) Column in dataframe

I have a pandas.DataFrame without a header like this:

    0   1   2   3   4   5   
MAC                                                     
ID1 1   1   2   3   3   4   
ID2 6   6   7   7   8   9
ID3 1   2   3   3   4   5

I want to add column header with following "data" names. My expected results look like this:

    Data_1  Data_2  Data_3  Data_4  Data_5  Data_6  
MAC                                                     
ID1    1       1       2       3       3      4 
ID2    6       6       7       7       8      9
ID3    1       2       3       3       4      5

I have hundred thousand columns and I want to edit all of the columns, please give a better way to edit this data.

Upvotes: 2

Views: 1516

Answers (2)

Allen Qin
Allen Qin

Reputation: 19957

You can use df.rename:

df.rename(columns=lambda x: 'Data_{}'.format(int(x)+1))
Out[796]: 
     Data_1  Data_2  Data_3  Data_4  Data_5  Data_6
MAC                                                
ID1       1       1       2       3       3       4
ID2       6       6       7       7       8       9
ID3       1       2       3       3       4       5

Upvotes: 1

Stephen Rauch
Stephen Rauch

Reputation: 49842

You access the .columns field and then calculate your columns like:

Code:

df.columns = ['Data_{}'.format(int(i)+1) for i in df.columns]

Test Code:

df = pd.read_fwf(StringIO(u"""
    MAC 0   1   2   3   4   5   
    ID1 1   1   2   3   3   4   
    ID2 6   6   7   7   8   9
    ID3 1   2   3   3   4   5"""),
                 header=1).set_index('MAC')
print(df)

df.columns = ['Data_{}'.format(int(i)+1) for i in df.columns]
print(df)

Results:

     0  1  2  3  4  5
MAC                  
ID1  1  1  2  3  3  4
ID2  6  6  7  7  8  9
ID3  1  2  3  3  4  5

     Data_1  Data_2  Data_3  Data_4  Data_5  Data_6
MAC                                                
ID1       1       1       2       3       3       4
ID2       6       6       7       7       8       9
ID3       1       2       3       3       4       5

Upvotes: 2

Related Questions