将年份和季度连接为字符串

时间:2018-03-25 09:38:12

标签: python-3.x datetime

我的数据集中有一个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 ...

请帮忙。

1 个答案:

答案 0 :(得分:0)

当应用于数据帧时,我可以发现str()和astype(str)之间的重要区别。 str()方法将连接所有行的值;显然不是我们想要的。要应用于每个字段,我们应该使用astype(str)

因此,修改如下的代码修复了它。

df['yr_qr'] =df['year'].astype(str) + '_' + df['qtr'].astype(str)

请参阅下面的上一个问题。

Difference between str() and astype(str)?