У меня есть:
df = pd.DataFrame(
[
[22, 33, 44],
[55, 11, 22],
[33, 55, 11],
],
index=["abc", "def", "ghi"],
columns=list("abc")
) # size(3,3)
и:
unique = pd.Series([11, 22, 33, 44, 55]) # size(1,5)
, затем я создаю новый df на основе unique
и df
, так что:
df_new = pd.DataFrame(index=unique, columns=df.columns) # size(5,3)
Из этого вновь созданного df я хотел бы создать новый логический df на основе unique
и df
, так что конечный результат:
df_new = pd.DataFrame(
[
[0, 1, 1],
[1, 0, 1],
[1, 1, 0],
[0, 0, 1],
[1, 1, 0],
],
index=unique,
columns=df.columns
)
Этот новый df либо true, либо false, в зависимости от того, присутствует ли значение в исходном кадре данных или нет. Например, первый столбец имеет три значения: [22, 55, 33]. В df с размерами (5,3) этот первый столбец будет выглядеть следующим образом: [0, 1, 1, 0, 1], т.е. [0, 22, 33, 0, 55]
Я пытался filter2 = unique.isin(df)
но это не работает, также не обязательно. Я попытался применить фильтр, но возвращенные размеры были неправильными. Как я могу это сделать?