Я пытаюсь закодировать рождение целочисленной категориальной функции с помощью
birth_encoded = encode_integer_categorical_feature(birth, "birth", train_ds)
Где
def encode_integer_categorical_feature(feature, name, dataset):
# Create a CategoryEncoding for our integer indices
encoder = CategoryEncoding(output_mode = "binary")
# Prepare a Dataset that only yields our feature
feature_ds = dataset.map(lambda x, y: x[name])
feature_ds = feature_ds.map(lambda x: tf.expand_dims(x, -1))
# Learn the space of possible indices
encoder.adapt(feature_ds)
# Apply one-hot encoding to our indices
encoded_feature = encoder(feature)
return encoded_feature
И получите ошибку:
TypeError: '>' not supported between instances of 'list' and 'int'
Я предполагаю, что это потому, что данные о рождении не идеально очищены?
Тип данных о рождении - int64, но каким-то образом там есть список?
Итак (если это проблема, в чем я почти уверен), мне интересно, как проверить элементы в столбце фрейма данных, который является списком? Или, скорее, как отфильтровать все списки в столбце рождения для проверки.
Вот предложение:
С образцом DataFrame
df = pd.DataFrame({'Col': [1, 2, [1, 2], 3, [1, 2, 3]]})
Этот
df_lists = df.Col.apply(lambda x: type(x) == list)
lists = [(i, item) for i, item in zip(df.index, df.Col) if type(item) == list]
Дает вам следующий вывод (print(df_lists) и print(lists)):
0 False
1 False
2 True
3 False
4 True
Name: Col, dtype: bool
[(2, [1, 2]), (4, [1, 2, 3])]