(同じカテゴリの)順序付けられたカテゴリ データの 2 つの列を含む DataFrame があります。最初の 2 列のカテゴリ最大値を含む別の列を作成したいと考えています。以下を設定しました。
import pandas as pd
from pandas.api.types import CategoricalDtype
import numpy as np
cats = CategoricalDtype(categories=['small', 'normal', 'large'], ordered=True)
data = {
'A': ['normal', 'small', 'normal', 'large', np.nan],
'B': ['small', 'normal', 'large', np.nan, 'small'],
'desired max(A,B)': ['normal', 'normal', 'large', 'large', 'small']
}
df = pd.DataFrame(data).astype(cats)
次のコードを実行すると、np.nan 項目に問題がありますが、列を比較できます。
df['A'] > df['B']
マニュアルでは、 max() がカテゴリデータで機能することを示唆しているため、次のように新しい列を定義しようとしています。
df[['A', 'B']].max(axis=1)
これにより、NaN の列が生成されます。なんで?