【问题标题】:How do I append multiple data frames to empty DataFrame with Title如何将多个数据框附加到带有标题的空 DataFrame
【发布时间】:2020-07-21 23:46:49
【问题描述】:

所以我有多个数据框 df1、df2 和 df3,有 8 列,有 n 行。 我想将它们附加到顶部带有标题/标题的空数据框中。在我想要的每个附加之后 创建一个空白空间。

例如,最终输出将是:

                        Header/title                                
 c1     c2       c3      c4      c5       c6      c7     c8
data    data    data    data    data    data    data    data    
data    data    data    data    data    data    data    data    
                                
 c1     c2       c3      c4      c5       c6      c7     c8
data    data    data    data    data    data    data    data    
data    data    data    data    data    data    data    data    
                                
 c1     c2       c3      c4      c5       c6      c7     c8
data    data    data    data    data    data    data    data    
data    data    data    data    data    data    data    data

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    我会这样做:

    import pandas as pd
    from random import randint
    
    #This is just to generate dataframes I'm assuming you do not need this part.
    n=7
    df1 = pd.DataFrame({"column{}".format(i):[randint(1,100) for x in range(n)] for i, v in enumerate(range(8),1)})
    df2 = pd.DataFrame({"column{}".format(i):[randint(1,100) for x in range(n)] for i, v in enumerate(range(8),1)})
    df3 = pd.DataFrame({"column{}".format(i):[randint(1,100) for x in range(n)] for i, v in enumerate(range(8),1)})
    
    #this makes the empty space and the header rows (normally this works if you have the same amount of columns)
    empty_space =  {d1:"" for d2, d1 in enumerate(df1.columns,0)}
    col_col = {d1:d2 for d1, d2 in zip(df1.columns,df2.columns)}
    
    #This appends data from df1 + df2 together (with your buffer space and headers, which are just values at this point)
    output_df = df1.append(empty_space, ignore_index=True)
    output_df = output_df.append(col_col, ignore_index=True)
    output_df = output_df.append(df2, ignore_index=True)
    
    #repeat for the 3 dataframe
    col_col = {d1:d2 for d1, d2 in zip(output_df.columns,df3.columns)}
    output_df = output_df.append(empty_space, ignore_index=True)
    output_df = output_df.append(col_col, ignore_index=True)
    output_df = output_df.append(df3, ignore_index=True)
    

    这严格来说是一个咨询输出,因为 dfs 不是在 output_df 中作为单独的 df 维护的。对于我不知道的标题。我想我会尝试一些涉及多索引的东西。但是根据输出,直接进入您的 Excel、HTML、JSON(或其他)文件并直接放在那里可能会更容易。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-09
      • 2018-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 2019-05-21
      • 2022-01-21
      相关资源
      最近更新 更多