Ваш вопрос мне не очень понятен, но из того, что я получаю, вы пытаетесь сделать что-то вроде этого:
import pandas as pd
import numpy as np
header = ["First_name1", "First_name2", "First_name3", "Last_name1", "Last_name2"]
df= pd.DataFrame([["Michel", "Michelle", "Michele", "Jeremi", "Jeremy"],
["Jack", "Jack", "Jak", "Jean", "Jean"],
["Dave", "Dav", "Dave", "Daniel", "Danielle"]], columns=header)
print df
# Create empty df
finalDataFrame = pd.DataFrame(columns=header)
for index, row in df.iterrows():
firstName = row[0]
# convert to row as tuple cannot be modified
lrow = list(row)
if (firstName == row[1]):
lrow[1] = np.NaN
if (firstName == row[2]):
lrow[2] = np.NaN
# Append the row to the final DataFrame
finalDataFrame.loc[len(finalDataFrame)] = lrow
print finalDataFrame
Надеюсь, это поможет!