python-将多列与互补行合并

python-将多列与互补行合并,python,pandas,Python,Pandas,数据帧示例: col1, col2, col3 1 v1 2 v2 3 v3 4 v4 5 v5 6 v6 我想将col1、col2、col3合并到新列,如下所示: col_new 1 v1 2 v2 3 v3 4 v4 5 v5 6 v6 如果数据帧的格式如下: col1, col2, c

数据帧示例:

    col1, col2, col3
1     v1
2     v2
3           v3
4           v4
5                 v5
6                 v6
我想将col1、col2、col3合并到新列,如下所示:

    col_new
1      v1
2      v2
3      v3
4      v4
5      v5
6      v6
如果数据帧的格式如下:

    col1, col2, col3
1     v1          v7
2     v2
3           v3
4           v4
5                 v5
6                 v6
然后,我将合并这三列。据介绍,这三列并非完全互补。(行-索引1)


目前,我的方法将三列转换为列表,并通过zip(col1、col2、col3)进行组合。然后,检查列表中的每个迭代-
[x[iteration]对应列表中的x(zip(col1,…)]

“Not Null”项在每次迭代中是否只有一个(=1)?但这似乎是一种低效的方式

有什么有效的方法来达到我的要求吗

您可以使用:

df = df.fillna('').sum(axis=1)

# 0    v1
# 1    v2
# 2    v3
# 3    v4
# 4    v5
# 5    v6

谢谢你的回复。当所有列中的行都是互补的时,您的答案可以完美地合并。但是,如果同一行中有两个值,是否有任何方法可以检测并避免合并这三列?@tplandeer Try
df.fillna(“”).apply(lambda x:‘,’.join(x),1).str.strip(‘,’).str.split(‘,’,’).apply(pd.Series)