Я пытаюсь найти минимальное (не пропущенное) значение по столбцам, а столбцы имеют dtype как .period ['M']. Я использовал следующий код: df [['p1', 'p2', 'p3']]. Min (axis = 1), но результаты не такие, как ожидалось.
Input Dataframe:
p1 p2 p3
NaT NaT '2019-10'
NaT '2018-04' '2019-01'
NaT '2019-10' '2019-11'
'2017-01' '2018-12' '2016-12'
Желаемый результат:
p1 p2 p3 min_p
NaT NaT '2019-10' '2019-10'
NaT '2018-04' '2019-01' '2018-04'
NaT '2019-10' '2019-11' '2019-10'
'2017-01' NaT '2016-12' '2016-12'
DDL для генерации Dataframe:
df = pd.DataFrame({'p1': ['','','2019-10'],
'p2': ['','2018-04','2019-01'],
'p3': ['2017-01','','2016-12']})
df['p1'] = pd.PeriodIndex(pd.to_datetime(df['p1'],format='%Y-%m'),freq='M')
df['p2'] = pd.PeriodIndex(pd.to_datetime(df['p2'],format='%Y-%m'),freq='M')
df['p3'] = pd.PeriodIndex(pd.to_datetime(df['p3'],format='%Y-%m'),freq='M')
Я пробовал:
df['min_p'] = df[['p1','p2','p3']].min(axis=1,skipna=True)
Я получаю результаты как ( почему скина не работает ???): min_p inf inf 2016-12
Pandas Версия: '1.0.1'
Спасибо!