Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 连接数据帧中的列值,用逗号替换“NaN”值_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 连接数据帧中的列值,用逗号替换“NaN”值

Python 连接数据帧中的列值,用逗号替换“NaN”值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我正在尝试连接Pandas DataFrame列,用逗号替换“NaN”值 df = pd.DataFrame({'col1' : ["1","2","3","4","5",np.nan], 'col2' : ["p1","p2","p1",np.nan,"p2",np.nan], 'col3' : ["A","B","C","D","E","F"]}) df col1 col2 col3 0

我正在尝试连接Pandas DataFrame列,用逗号替换“NaN”值

df = pd.DataFrame({'col1' : ["1","2","3","4","5",np.nan],
                   'col2'  : ["p1","p2","p1",np.nan,"p2",np.nan], 
                   'col3' : ["A","B","C","D","E","F"]})


df


 col1    col2  col3
0    1    p1    A
1    2    p2    B
2    3    p1    C
3    4    NaN   D
4    5    p2    E
5    NaN  NaN   F

我需要一个输出:-

   col1  col2  col3  col4
0    1    p1    A    1, p1, A
1    2    p2    B    2, p2, B
2    3    p1    C    3, p1, C
3    4    NaN   D    4, , D
4    5    p2    E    5, p2, E
5    NaN  NaN   F     , , F
基本上,我需要为col4中的每一行使用相同数量的逗号

提前感谢您的帮助

将缺少的值替换为,然后使用“按行联接”:

df['col4'] = df.astype(str).fillna('').apply(', '.join, axis=1)
或通过以下方式添加,并将总和用于联接、最后移除和最后移除:

或分别处理每一列:

df['col4'] = (df['col1'].astype(str).fillna('') + ', ' + 
              df['col2'].astype(str).fillna('') + ', ' + 
              df['col3'].astype(str))
df['col4'] = (df['col1'].astype(str).fillna('') + ', ' + 
              df['col2'].astype(str).fillna('') + ', ' + 
              df['col3'].astype(str))
print (df)
  col1 col2 col3      col4
0    1   p1    A  1, p1, A
1    2   p2    B  2, p2, B
2    3   p1    C  3, p1, C
3    4  NaN    D    4, , D
4    5   p2    E  5, p2, E
5  NaN  NaN    F     , , F