Есть ли способ переименовать несколько столбцов df в Python? - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь переименовать несколько столбцов в кадре данных на определенные даты с помощью Python.

В настоящее время столбцы таковы: 2016-04, 2016-05, 2016-06 ....

Мне бы хотелось, чтобы столбцы читались: апрель 2016, май 2016, июнь 2016 ...

Есть около 40 столбцов.Я предполагаю, что цикл for был бы наиболее эффективным способом сделать это, но я относительно новичок в Python и не уверен, как правильно объединить имена столбцов.

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Вы можете использовать циклы или выражения вместе со словарем месяца, чтобы разделить, изменить порядок и заменить имена строковых столбцов

#in your case this would be cols=df.columns
cols=['2016-04', '2016-05', '2016-06']
rpl={'04':'April','05':'May','06':'June'}

cols=[\
 ''.join(\
         [rpl[i.split('-')[1]],
              i.split('-')[0]]) \
 for i in cols]

cols
['April2016', 'May2016', 'June2016']

#then you would assign it back with df.columns = cols
0 голосов
/ 17 июня 2019

Вы не предоставили доступ к вашему фрейму данных, поэтому я использовал базовый фрейм данных, чтобы объяснить, как получить месяц с заданной датой. Я предположил, что ваш фрейм данных нравится:

d = {'dates': ['2016-04', '2016-05','2016-06']} #just 3 of them

, поэтому весь код:

import datetime
import pandas as pd
d = {'dates': ['2016-04', '2016-05','2016-06']}
df = pd.DataFrame(d)

for index, row in df.iterrows():
    get_date= row['dates'].split('-')
    get_month = get_date[1]
    month = datetime.date(1900, int(get_month), 1).strftime('%B')
    print (month+get_date[0])

ВЫХОД:

2016April
2016May
2016June
...