我有一個 Pandas 資料框,其中包含每月有 30 多個列的子集,命名為“2018-09-01 00:00:00”,我想將其重新格式化為“2018 年 9 月”這樣的月-年。
我發現這很有用:
df.iloc[:, 13:].rename(columns='{:%b %Y}'.format)
但是將它應用于整個 df 會破壞這些列中的資料:
df.iloc[:, 13:] = df.iloc[:, 13:].rename(columns='{:%b %Y}'.format)
如何更改我通過索引知道的一系列列的格式?
uj5u.com熱心網友回復:
使用rename:
old_col_names = df.filter(regex=r'\d{4}-\d{2}').columns.tolist()
new_col_names = pd.to_datetime(old_col_names).strftime('%b %Y')
df = df.rename(columns=dict(zip(old_col_names, new_col_names)))
輸出:
# Before rename
>>> df
id 2018-09-01 00:00:00 2018-10-01 00:00:00 data
0 0 1 2 3
# After rename
>>> df
id Sep 2018 Oct 2018 data
0 0 1 2 3
設定:
data = {'id': [0], '2018-09-01 00:00:00': [1],
'2018-10-01 00:00:00': [2], 'data': [3]}
df = pd.DataFrame(data)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/337067.html
