我的数据集中有一个Date列,我想创建一个新列,我将包含'2004_1'这样的值。这表示日期是2004年和Quarter-1。
我无法成功创建它。我在下面使用的代码是垃圾。
df['year']=df['Date'].dt.year
df['qtr']=df['Date'].dt.quarter
df['yr_qr'] =str(df['year']) + '_' + str(df['qtr'])
我确保Date是datetime64对象和年份,qtr是正确创建的(int64)。
下面是一片数据。
Date year qtr yr_qr
0 2002-01-15 2002 1 0 2002 \ n1 2002 \ n2 2002 \ n3 ...
1 2002-01-16 2002 1 0 2002 \ n1 2002 \ n2 2002 \ n3 ...
2 2002-01-17 2002 1 0 2002 \ n1 2002 \ n2 2002 \ n3 ...
请帮忙。
答案 0 :(得分:0)
当应用于数据帧时,我可以发现str()和astype(str)之间的重要区别。 str()方法将连接所有行的值;显然不是我们想要的。要应用于每个字段,我们应该使用astype(str)
因此,修改如下的代码修复了它。
df['yr_qr'] =df['year'].astype(str) + '_' + df['qtr'].astype(str)
请参阅下面的上一个问题。