Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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 将文本列动态合并为一列_Python_Pandas - Fatal编程技术网

Python 将文本列动态合并为一列

Python 将文本列动态合并为一列,python,pandas,Python,Pandas,我有一个如下所示的数据库: ID A B C D.... 1 HKU 2 3MC 3 Main 4 Main FT 数据框每周更新一次,如果列中没有记录,则该列不会出现在数据框中。通常有20多列。例如,假设这是第1周,“B”列中有一条记录,但如果下周B列中没有记录,那么B列将不会包含在数据帧中(我无法控制数据帧的后端设计) 我有一个连接列的代码,但是当一个列名不在代码中时,我得到一个

我有一个如下所示的数据库:

ID  A    B      C      D....
1       HKU
2              3MC  
3  Main 
4  Main               FT    
数据框每周更新一次,如果列中没有记录,则该列不会出现在数据框中。通常有20多列。例如,假设这是第1周,“B”列中有一条记录,但如果下周B列中没有记录,那么B列将不会包含在数据帧中(我无法控制数据帧的后端设计)

我有一个连接列的代码,但是当一个列名不在代码中时,我得到一个错误,说变量不在数据帧中

 new_ADM1['concat'] = pd.Series(new_ADM1[['A, 'B','C'...]].fillna('').values.tolist()).str.join(' ')
我需要动态创建一个包含所有非ID列的列的连接列,而不管我的dataframe中有多少列

 new_ADM1['concat'] = pd.Series(new_ADM1[['A, 'B','C'...]].fillna('').values.tolist()).str.join(' ')
我希望新的dataframe看起来像这样,带有一个连接列,该列组合了a to中的所有文本。。。按ID排序的列

ID  A    B      C      D....    concat
1       HKU                       HKU
2              3MC                3MC
3  Main                           Main
4  Main               FT          Main, FT    

       
             
df['concat']=df.apply(lambda x:','.join(x.dropna().astype(str)),axis=1)
pd.Series(新的ADM1.drop('ID',1).fillna('').values.tolist()).str.join('')
df['concat']=df.apply(lambda x:','.join.join(x.dropna().astype(str)),axis=1)
?pd.Series(新的ADM1.drop('ID',.1.).fillna()).tolist())