Keep values assigned to one column in a new dataframe

I have a dataset with three columns:

Name Customer Value
Johnny Mike     1
Christopher Luke 0
Christopher Mike 0
Carl        Marilyn 1
Carl        Stephen 1

I need to create a new dataset where I have two columns: one with unique values from Name and Customer columns, and the Value column. Values in the Value column were assigned to Name (this means that multiple rows with same Name have the same value: Carl has value 1, Christopher has value 0, and Johnny has value 1), so Customer elements should have empty values in Value column in the new dataset. My expected output is

All        Value
Johnny       1
Christopher  0
Carl         1
Mike
Luke
Marilyn
Stephen

For unique values in All column I consider unique().to_list() from both Name and Customer:

name = file['Name'].unique().tolist()
customer = file['Customer'].unique().tolist()
all_with_dupl = name + customer
customers=list(dict.fromkeys(all_with_dupl))

df= pd.DataFrame(columns=['All','Value'])
df['All']= customers

I do not know how to assign the values in the new dataset after creating the list with all names and customers with no duplicates. Any help would be great.

Answer

Split columns and .drop_duplicates on data frame to remove duplicates and then append it back:

(df.drop('Customer', 1)
   .drop_duplicates()
   .rename(columns={'Name': 'All'})
   .append(
     df[['Customer']].rename(columns={'Customer': 'All'})
       .drop_duplicates(),
     ignore_index=True
   ))

           All  Value
0       Johnny    1.0
1  Christopher    0.0
2         Carl    1.0
3         Mike    NaN
4         Luke    NaN
5      Marilyn    NaN
6      Stephen    NaN

Or to split the steps up:

names = df.drop('Customer', 1).drop_duplicates().rename(columns={'Name': 'All'})
customers = df[['Customer']].drop_duplicates().rename(columns={'Customer': 'All'})
names.append(customers, ignore_index=True)