首页 > 解决方案 > 数据格式化熊猫

问题描述

我正在尝试输入为索引创建一行的代码行31'st January 1995。我无法使该行看起来像31/01/1995,而是输出是1995-01-31 00:00:00.

我在名为 MainData 的数据框中的原始数据

我试图在 1995 年 1 月 31 日的顶部添加一行,格式与下面的数据相同。

在此处输入图像描述

我的代码是

MainData.loc[pd.to_datetime('31/01/1995',format='%d/%m/%Y'),:] = [100 for number in range(7)]
MainData

在此处输入图像描述

请让我知道是否有办法将其重新格式化为31/01/1995.

提前致谢。

标签: pythonpandasdatetime

解决方案


#Making the data look more normal by removing the first column index level
MainData = MainData.rename(columns=MainData.iloc[0])
MainData = MainData.iloc[1:]
#Re-adjusting the Index to a datetime format
MainData['DateAdjusted'] = MainData.index
MainData = MainData.reset_index(drop=True)
MainData['DateAdjusted'] = pd.to_datetime(MainData['DateAdjusted'],dayfirst=True)

#Just renaming the Column and converting the index back to Date
MainData.rename(columns={'DateAdjusted':'Date'},inplace=True)
MainData.index = MainData['Date']
del MainData['Date']

#Defining the date for the row I want to add
InitialDate = "31/01/1995"
format_str = '%d/%m/%Y' 
datetime_obj = datetime.datetime.strptime(InitialDate, format_str)
print (datetime_obj.date())

MainData.loc[datetime_obj,:] = [100 for number in range(7)]
MainData = MainData.sort_index(ascending=True)

推荐阅读