Ich habe ein pd.DataFrame
die wie folgt aussieht:Viertel von datetime64
In [119]: df1
Out[119]:
DATES
0 2014-01-01
1 2014-01-24
2 2014-03-11
3 2014-04-09
4 2014-04-21
5 2014-05-02
6 2014-05-13
7 2014-06-11
8 2014-06-21
9 2014-07-22
10 2014-08-04
In [120]: df1.dtypes
Out[120]:
DATES datetime64[ns]
dtype: object
und ich möchte das Quartal berechnen jeweils einer der Einträge gehört. Was ich bisher versucht ist:
df1['QUARTER'] = df1['DATES'].map(lambda x: '2014Q1' if (x.year == 2014 & (x.month == 1 | x.month == 2 | x.month == 3)) else np.nan)
und dann bekomme ich:
In [124]: df1
Out[124]:
DATES QUARTER
0 2014-01-01 NaN
1 2014-01-24 NaN
2 2014-03-11 NaN
3 2014-04-09 NaN
4 2014-04-21 NaN
5 2014-05-02 NaN
6 2014-05-13 NaN
7 2014-06-11 NaN
8 2014-06-21 NaN
9 2014-07-22 NaN
10 2014-08-04 NaN
Schließlich habe ich versucht:
df1['QUARTER'] = df1['DATES'].map(lambda x: x.year + '-Q' + x.quarter)
und dann bekomme ich einen Fehler :
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Irgendwelche Ideen werden geschätzt, danke!
Genau das, was ich gesucht habe, danke! – Thanos