Полагаю, вам нужно заменить пропущенные значения, если необходимо, на fillna
, преобразовать значения в строки с astype
и apply
с join
.Получите Series
, поэтому для одного столбца DataFrame
добавьте to_frame
с транспонированием:
df = df.fillna(' ').astype(str).apply('|'.join).to_frame().T
print (df)
Country Allowed_stay Visa_requirement
0 Albania|Afganistan|Andorra 30|30|60 visa free| | visa free
Или используйте понимание списка с конструктором DataFrame
:
L = ['|'.join(df[x].fillna(' ').astype(str)) for x in df]
df1 = pd.DataFrame([L], columns=df.columns)
print (df1)
Country Allowed_stay Visa_requirement
0 Albania|Afganistan|Andorra 30|30|60 visa free| | visa free