Я обнаружил, что pandas работает по-разному при назначении списка собственных значений (например, int или char) и np.arrays подмножеству строк в DataFrame с помощью lo c.
df = pd.DataFrame({'name':['xxx','yyy',np.nan,np.nan],'score':[100,80,np.nan,np.nan]})
# This line works
df.loc[df['name'].isnull(),'rank']=['F','F']
# This line does not work
df.loc[df['name'].isnull(),'rank'] = [np.array([1,2]),np.array([5,6])]
# This line works
df['rank']=['A','B','F','F'].
# Very strange that this line also works.
df['rank'] = [np.array([1,2]),np.array([5,6]),np.array([1,2]),np.array([5,6])]
Я хотел назначить список np.array выделению строк на lo c, как в 3-й строке выше, но это не сработало. Странно, это работает, чтобы назначить списку массива для всех строк. У меня вопрос, как я могу аккуратно назначить список массивов подмножеству строк.