Изменить заголовки столбцов фрейма данных Pandas - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть заголовок этого столбца:

enter image description here

Я помещаю их в список по x = list(df), а тип x - это строка. Я хочу поместить их в другой список строк, но преобразовать их в 8/18, 7 / 18,6 / 18 и т. Д. *

Вот вывод df.head ():

enter image description here

Выход print(df.columns)

<class 'str'>
Index(['NDD 8/31', 'Aug 2018(P&I Applied)', 'Jul 2018(P&I Applied)',
       'Jun 2018(P&I Applied)', 'May 2018(P&I Applied)',
       'Apr 2018(P&I Applied)', 'Mar 2018(P&I Applied)',
       'Feb 2018(P&I Expected)', 'Jan 2018(P&I Applied)',
       'Dec 2017(P&I Applied)', 'Nov 2017(P&I Applied)',
       'Oct 2017(P&I Applied)', 'Sep 2017(P&I Applied)',
       'Paystring as of cut off as if 10.31',
       'Paystrings as of 

Кто-нибудь знает, как этого добиться?

1 Ответ

0 голосов
/ 16 ноября 2018

Вы можете преобразовать в datetime и затем использовать strftime.Приведенная ниже логика также обеспечивает неизменность столбцов без даты.

df = pd.DataFrame(columns=['Aug 2018(P&I Applied)', 'Jul 2018(P&I Applied)',
                           'Jun 2018(P&I Applied)', 'Paystring as of cut off as if 10.31'])

dates = pd.Series(pd.to_datetime(df.columns.str[:8], errors='coerce'))

df.columns = dates.dt.strftime('%m/%y').mask(dates.isnull(), pd.Series(df.columns))

print(df.columns)

# Index(['08/18', '07/18', '06/18', 'Paystring as of cut off as if 10.31'], dtype='object')

print(dates.dt.month)

# 0    8.0
# 1    7.0
# 2    6.0
# 3    NaN
# dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...