我计算类型为pd.Period的两列之间的增量。在0.24之前,它将返回一个int类型,但在0.24中将不再返回,它将返回一系列类似的值:1 * MonthEnds,2 * MonthEnds,……我想将其转换为int类型。
我可以使用Apply来实现这一点,例如
df.apply(lambda x: x['z'].n)
或
((df['x'] - df['y']) / np.timedelta64(1, 'M')).round()
但是我想知道是否还有其他解决方法。
df = pd.DataFrame({'x':pd.date_range(start='2001-01-01', periods=10), 'y':pd.date_range(start='2002-01-01', periods=10)})
在Pandas 0.24之前,以下代码将返回int类型的列
df['z'] = df['x'].dt.to_period('M') - df['y'].dt.to_period('M')
但是0.24更改了返回类型,如上所述,仍然有两种方法可以返回int列,但是我想知道是否还有其他方法可以实现此目的。
答案 0 :(得分:0)
一种方法是良好的旧列表理解:
<td>{{user.role.role_title}}</td> //does NOT work, should display 'TestTitle'
答案 1 :(得分:0)
使用astype
将返回int
而不是DateOffset
对象:
df['x'].dt.to_period('M').astype(int) - df['y'].dt.to_period('M').astype(int)
0 -12
1 -12
2 -12
3 -12
4 -12
5 -12
6 -12
7 -12
8 -12
9 -12
dtype: int64