截至d月的季度数据

2024-09-29 17:14:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有列日期的数据框。日期写为2002Q1,2002Q2

我希望每季度有三行而不是一行,并将日期重命名为20020101、20020201和20020301,作为第一季度的示例

你知道吗。谢谢

我的代码

    list=pd.read_csv(r"C:\Usersxyx.csv", delimiter = ',', usecols=["date", "ID", 'Value'])
list['year'] = [str(i)[:4] for i in list["date"]]
list ['month']= [str(i)[5:6] for i in list["date"]]
blist= pd.DataFrame(np.repeat(list.values, 3, axis=0))
blist.columns = list.columns

我的想法是把这一行复制三次。所以我每个月都有一条线。现在我不知道如何把日期从2001Q1改成20010101,20010201等等


Tags: columnscsv数据代码in示例forread
1条回答
网友
1楼 · 发布于 2024-09-29 17:14:32

您可以遵循以下代码。 注意:不要使用dataframe名称作为'list'。我把名字改成“lista”

a1=pd.DataFrame([str(i)[0:4]+str((int(str(i)[5]))*3-2).zfill(2)+'01' for i in lista["date"]],columns= ['date1'])
a2=pd.DataFrame([str(i)[0:4]+str((int(str(i)[5]))*3-1).zfill(2)+'01' for i in lista["date"]],columns= ['date1'])
a3=pd.DataFrame([str(i)[0:4]+str((int(str(i)[5]))*3).zfill(2)+'01' for i in lista["date"]],columns= ['date1'])
pd.concat([a1,a2,a3])   
pd.concat([pd.concat([lista,a1],axis=1),pd.concat([lista,a2],axis=1),pd.concat([lista,a3],axis=1)], ignore_index=True)

相关问题 更多 >

    热门问题