我正在尝试通过对整数分类特征出生进行编码
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])]