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)