Я работаю в Pandas и получаю странное поведение при использовании pd.concat
. В частности, у меня есть DataFrame, df
, и я горячо кодирую столбец zipcode
. Вот что я делаю:
zip_encoded = label_binarizer.transform(df["zipcode"])
zip_encoded = pd.DataFrame(zip_encoded, columns=label_binarizer.classes_)
df = df.drop("zipcode", axis=1)
print("df shape:", df.shape)
print("zip encoded shape:", zip_encoded.shape)
result = pd.concat([df, zip_encoded], axis=1)
print("result shape", result.shape)
return label_binarizer, result
Это дает следующий вывод:
df shape: (13999, 13)
zip encoded shape: (13999, 10)
result shape (14000, 23)
Итак, я просто пытаюсь выполнить конкататацию вдоль столбцов и ожидаю результирующую форму (13999, 23)
, но вместо этого вижу форму (14000, 23)
.
Я делаю то же самое с моим test_df
, используя LabelBinarizer
, который мне подходит на моем df
. Когда я делаю это, я получаю даже незнакомца:
df shape: (1000, 13)
zip encoded shape: (1000, 10)
result shape (2000, 23)
Когда я проверяю новый test_df
, все столбцы, не относящиеся к почтовому индексу, заполняются NaN ...
Есть идеи, что я делаю неправильно?
Спасибо!