我有一個日期時間格式,正試圖用于我的一個要求。這是我的代碼,這是輸入資料框的樣子-
data=pd.DataFrame({'A': ['abc','bcd'], 'B': [pd.to_datetime('1/1/18 0:00'), 'apples'], 'C':[pd.to_datetime('1/2/18 0:00'),'mangoes'], 'D':[pd.to_datetime('1/3/18 0:00'),'orange'],'E':[pd.to_datetime('1/4/18 0:00'),'plantain'],
'F':[pd.to_datetime('1/5/18 0:00'),'plantain'],'G':[pd.to_datetime('1/6/18 0:00'),'red'],'H':[pd.to_datetime('1/2/18 0:00'),'green']})
(我使用 pd.to_datetime 來展示輸入檔案中的資料格式)
I/P 資料幀-

我的目標是將日期轉換為 str 格式,該格式提供類似 1/18 (m/yy) 而不是 1/1/18 (md-yy) 的 o/p。我正在嘗試這種方法-
data.loc[0,['B']]='1-2018'
data.loc[0,['C']]='2-2018'
data.loc[0,['D']]='3-2018'
.
.
.
.
這會完成我的作業,但我需要一些更優化的東西,不需要我寫更多的代碼行。例如-如果日期間隔為 3-4 年,那么使用我的方法寫所有的月份和年份將會很乏味。
有沒有更好的方法來使用 for 回圈來撰寫上面的代碼行?
uj5u.com熱心網友回復:
一種使您的資料框更易于訪問的方法可能是轉置它,以便您擁有一個實際的日期列:
df_new = df.drop(columns=['A']).T.copy()
df_new.rename(columns={0: 'Date', 1: 'Fruit'}, inplace=True)
df_new['Date_str'] = df_new['Date'].dt.strftime('%m/%Y')
這將為您提供一個日期列,其中包含諸如“01/2018”之類的字串,而且表格基本上是垂直的。
如果您需要其他規格,請告訴我 :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/537889.html
