2017-04-04 53 views
1

我的原始df.index格式爲yyyy-mm-dd(不是datetime dtype,它是一個str)。如何將其格式化爲ddmmmyyyy?Python - 格式數據幀索引

df1 = pd.DataFrame(index=['2017-01-01', '2017-02-01', '2017-03-01'], 
      columns=["A", "B", "C"], 
      data=[[5,np.nan, "ok"], [7,8,"fine"], ["3rd",100,np.nan]]) 
df1 

enter image description here

我需要的結果是:

enter image description here

回答

3

您是否試圖以編程方式更改它?否則,你可以改變的字符串字面謊言3.6雙渦輪增壓建議: df1 = pd.DataFrame(index=['01JAN2017', '01FEB2017', '01MAR2017'], columns=["A", "B", "C"], data=[[5,np.nan, "ok"], [7,8,"fine"], ["3rd",100,np.nan]]) df1

否則,你可以嘗試:

df['date'] = df['datetime'].apply(lambda x: x.strftime('%d%m%Y')) df['time'] = df['datetime'].apply(lambda x: x.strftime('%H%M%S'))

1

嘗試這種解決方案

df1 = pd.DataFrame(index=['01JAN2017', '01FEB2017', '01MAR2017'], 
      columns=["A", "B", "C"], 
      data=[[5,np.nan, "ok"], [7,8,"fine"], ["3rd",100,np.nan]]) 
df1 
1

使用DatetimeIndex.strftime()方法

In [193]: df1.index = pd.to_datetime(df1.index).strftime('%d%b%Y') 

In [194]: df1 
Out[194]: 
      A  B  C 
01Jan2017 5 NaN ok 
01Feb2017 7 8.0 fine 
01Mar2017 3rd 100.0 NaN