2017-04-04 5 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 biturboが示唆された文字列リテラル嘘を変更することができます。 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