Reputation: 967
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
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
Reputation: 49842
You access the .columns
field and then calculate your columns like:
df.columns = ['Data_{}'.format(int(i)+1) for i in df.columns]
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)
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