连接来自同一数据框的列

Join columns from the same dataframe

所以,我有这个数据框,有些列被划分为 'Q7_part_1'、'Q7_part_2'...但它们都来自同一个问题。

我想做的是:将这些列合并为一列并排除 nan。 我试过 df = df[['Q7_Part_1', 'Q7_Part_2'...]].agg(','.join ,axix=1) 也试过 df['Q7'] = df['Q7_Part_1'].map(str) + df['Q7_Part_2'].map(str)...] 但这个只是加入了所有然后包括 nan 值。我还能做什么?

dataframe

你错过了一个关键部分 - dropna()

import pandas as pd
import numpy as np

df = pd.DataFrame({ "question":["q1","q2","q3"],'Q7_part_1':["Q1 part 1","Q2 part 1", np.nan], 'Q7_part_2':["Q1 part2",np.nan,"Q3 part 2"]})

df.assign(Q7=df.loc[:,[c for c in df.columns if "part" in c]].apply(lambda s: ",".join(s.dropna().astype(str)), axis=1))

question Q7_part_1 Q7_part_2 Q7
0 q1 Q1 part 1 Q1 part2 Q1 part 1,Q1 part2
1 q2 Q2 part 1 nan Q2 part 1
2 q3 nan Q3 part 2 Q3 part 2