Есть много причин, по которым вы не должны использовать списки в объектах серии Pandas.Ваш первый порт вызова должен состоять в том, чтобы извлечь строки и преобразовать ваши серии в категориальные данные:
df = pd.DataFrame({'A': [[], ['steel'], ['steel'], [], ['tarmac'], []]})
df['A'] = df['A'].str[0].fillna('other').astype('category')
print(df)
A
0 other
1 steel
2 steel
3 other
4 tarmac
5 other
Если вы настаиваете на использовании неэффективных и не векторизованных операций через циклы уровня Python, то выможно достичь желаемого следующим образом:
df['A'] = df['A'].str[0].fillna('other').apply(lambda x: [x])
print(df)
A
0 [other]
1 [steel]
2 [steel]
3 [other]
4 [tarmac]
5 [other]
На этом этапе категориальные данные не являются опцией, поскольку серии списков не поддерживаются категориями, поскольку list
не может быть хэш.