Как автоматически назвать Pandas столбцы данных? - PullRequest
2 голосов
/ 29 февраля 2020

У меня есть Pandas фрейм данных df с 102 столбцами. Каждый столбец назван по-разному, скажем A, B, C et c. чтобы дать исходному фрейму данных следующую структуру

         Column A.    Column B.  Column C.   ....
Row 1.    
Row 2.
---
Row n

Я хотел бы изменить имена столбцов с A, B, C et c. до F1, F2, F3, ...., F102. Я попытался использовать df.columns, но не смог переименовать их таким образом. Любой простой способ автоматически переименовать все имена столбцов в F1 to F102 автоматически, вместо того, чтобы переименовывать каждое имя столбца в отдельности?

Ответы [ 2 ]

2 голосов
/ 29 февраля 2020
df.columns=["F"+str(i) for i in range(1, 103)]

Примечание:

Вместо «магического» числа 103 вы можете использовать рассчитанное количество столбцов (+ 1 ), например

  • len(df.columns) + 1 или
  • df.shape[1] + 1.

(Спасибо ALollz за этот совет в своем комментарии.)

0 голосов
/ 29 февраля 2020

Один из способов сделать это - преобразовать его в пару списков и преобразовать список имен столбцов в индекс al oop:

import pandas as pd
d = {'Column A': [1, 2, 3, 4, 5, 4, 3, 2, 1], 'Column B': [1, 2, 3, 4, 5, 4, 3, 2, 1], 'Column c': [1, 2, 3, 4, 5, 4, 3, 2, 1]}
dataFrame = pd.DataFrame(data=d)
cols = list(dataFrame.columns.values)                 #convert original dataframe into a list containing the values for column name
index = 1                                             #start at 1
for column in cols:
    cols[index-1] = "F"+str(index)                    #rename the column name based on index
    index += 1                                             #add one to index
vals = dataFrame.values.tolist()                      #get the values for the rows
newDataFrame = pd.DataFrame(vals,   columns=cols)     #create a new dataframe containing the new column names and values from rows
print(newDataFrame)

Вывод:

   F1  F2  F3
0   1   1   1
1   2   2   2
2   3   3   3
3   4   4   4
4   5   5   5
5   4   4   4
6   3   3   3
7   2   2   2
8   1   1   1
...