Код: Выделить всё
import pandas as pd
import datetime as dt
df=pd.DataFrame(
[ [
dt.date(2025,6,5), dt.date(2025,6,6) ],[
dt.date(2025,6,7), dt.date(2025,6,8) ]
],
columns=['A','B'], index=['Row1','Row2']
)
# Explicitly find maximum of row 0 (WORKS)
max( df.loc[ df.index[0], ['A','B'] ] )
# None of the following 3 code patterns work for "apply"
if False:
df['MaxDate'] = df.apply( lambda row: max(
row.loc[ row.index[0], ['A','B'] ]
) )
# IndexingError: "Too many indexers"
elif False:
df['MaxDate'] = df.apply( lambda row: max(
row['A','B']
) )
# KeyError:
# "key of type tuple not found and not a MultiIndex"
elif False:
df['MaxDate'] = df.apply( lambda row: max(
row['A'],row['B']
) )
# KeyError: 'A'
Код: Выделить всё
# Querying class of "row" yields a column of "nan"
df['MaxDate'] = df.apply( lambda row: type(row) )
Что я делаю не так? Для меня, однако, это больше, чем просто вопрос о том, как достичь конечного эффекта. Это также выявляет мое понимание метода Apply . Что не так с моим использованием его механики? И почему тип (row) не показывает класс объекта Row ? Без видимости в своем типе трудно разумно придумать кодовые шаблоны, которые могут работать. Я переиздал вопрос, чтобы отразить это.
Подробнее здесь: https://stackoverflow.com/questions/796 ... imum-of-ot