利用df.values.tolist()的替代解决方案
import pandas as pd
# Working example with empty strings
df = pd.DataFrame({"Var1": ["A", "", "", "A"],
"Var2": ["B", "B", "", ""],
"Var3": ["C", "C", "C", "C"],
"Var4": ["D", "D", "D", ""],
"Var5": ["E", "", "E", "E"]
})
df["Var6"] = df.values.tolist()
df["Var6"] = df["Var6"].map(lambda x: ",".join([i for i in x if i != ""][:3]))
df
# Working example with None
df = pd.DataFrame({"Var1": ["A", None, None, "A"],
"Var2": ["B", "B", None, None],
"Var3": ["C", "C", "C", "C"],
"Var4": ["D", "D", "D", None],
"Var5": ["E", None, "E", "E"]
})
df["Var6"] = df.values.tolist()
df["Var6"] = df["Var6"].map(lambda x: ",".join([i for i in x if i is not None][:3]))
df