Python 如何从Dataframe中的n个行列表中生成组合的标题行

Python 如何从Dataframe中的n个行列表中生成组合的标题行,python,pandas,Python,Pandas,如何通过Dataframe执行以下步骤 创建标题行的列表,然后创建第一行的另一个列表,依此类推 现在将这n个列表合并成一个组合列 下面是我的代码,用于相同的逻辑,但限制为3个列表 cols1 = list(df.columns) cols2 = list(df.iloc[0,:]) cols2 = [str(x) for x in cols2] cols3 = list(df.iloc[1,:]) cols3 = [str(x) for x in cols3] cols = [x+"__"

如何通过Dataframe执行以下步骤

  • 创建标题行的列表,然后创建第一行的另一个列表,依此类推
  • 现在将这n个列表合并成一个组合列
  • 下面是我的代码,用于相同的逻辑,但限制为3个列表

    cols1 = list(df.columns)
    
    cols2 = list(df.iloc[0,:])
    cols2 = [str(x) for x in cols2]
    
    cols3 = list(df.iloc[1,:])
    cols3 = [str(x) for x in cols3]
    
    cols = [x+"__"+y+"__"+z for x,y,z in zip(cols1,cols2,cols3)]
    
    df.columns = cols
    
    我想为n行数的n个列表添加n个列表,然后将所有这些添加为单个行标题


    如果任何机构都能在这方面提供帮助,那就太好了。

    让我们调用
    n
    要连接到标题的行数。这就足够了:

    cols = df.iloc[:n].astype(str).apply(lambda x: x.name + '_' + '_'.join(x))
    
    它提供了一个按列名索引的序列,因此您可以执行以下操作:

    df.columns = cols
    

    你的意思是
    “”。join(col1+col2+col3)
    ?添加一些示例数据,以便我们可以直观地看到你的意思。我认为这是一个X,Y问题,你可能正在寻找
    df.to_dict('split')
    。您的行将
    列表
    放入
    数据
    键,并且
    索引也可用。感谢Serge的帮助。这就是我一直在寻找的。接下来,我将执行以下逻辑来重命名和填充NaN值。if(r_col==2):对于范围内的(0,c_col+1):df=df.iloc[:,:]。rename(columns={'Unnamed:'+str(a)+''u_NaN':'Column'+str(a)})。ffill()if(r_col==3):对于范围内的(0,c_col+1):df.iloc[,:,:]。重命名(columns={'Unnamed:'+str(a)+'\uu nan\uu nan':'Column'+str(a)}).ffill()这里的r_col是“行标题中的列”,c_col是“列标题中的列”。@AbhishekSrivastava:注释中的代码很难阅读。此外,现在是一个不同的问题。你最好问一个新问题。如果相关,你可以把这个问题的链接作为上下文元素。