【问题标题】:pandas - add additional column to an existing csv filepandas - 向现有的 csv 文件添加额外的列
【发布时间】:2021-11-22 16:59:38
【问题描述】:

我有 2 个文件需要填充同一个 csv 文件

为了提供上下文,目前,我有这段代码以所需的方式打印 CSV code-1.py

当前已添加:

array_all = {'Hand': alldata, 'Pose': face_position}
            array_all = {k: pd.Series(v) for k, v in array_all.items()}
            df = pd.DataFrame(array_all)

            df.to_csv('test.csv',
                        mode='w',
                        header=True,
                        index=False)
Hand Pose
No Seating Back
No Seating Back

现在我有了 code-2.py

要添加的列:

   df = pd.DataFrame(results)

    df.to_csv('test.csv',
              mode='a',
              header=True,
              index=False)

我想要做的是在右侧添加一列 期望的输出:

Hand Pose Eye
No Seating Back Left
No Seating Back Right

但是,目前我得到了这个,

实际输出:

Hand Pose
No Seating Back
No Seating Back
0
Right
Left

基本上,它附加到 CSV 的第一列 此外,可以假设 code-2.py 将在 code-1.py 之后立即运行

感谢您对此的任何想法,谢谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您不能在不完全加载 csv 文件的情况下将列附加到它(但是,您可以附加行)。使用pd.concat:

    pd.concat([pd.read_csv('test.csv'), df], axis=1) \
      .to_csv('test.csv', header=True, index=False)
    
    # test.csv before
    Hand,Pose
    No,Seating Back
    No,Seating Back
    
    
    # test.csv after
    Hand,Pose,Eye
    No,Seating Back,Left
    No,Seating Back,Right
    

    【讨论】:

      【解决方案2】:

      参考@Corralien 的回答

      我还遇到了一个问题,即每个额外的附加都会记录在一个新列中,如下所示 https://i.stack.imgur.com/08oTe.png

      为了缓解这种情况,我修改了给定的答案并创建了一个额外的 csv 并使用它覆盖了 csv,如下所示:

           pd.concat([pd.read_csv('test2.csv'), df], axis=1) \
                  .to_csv('test.csv', header=True, index=False)
      

      【讨论】:

        【解决方案3】:
        df = (pd.read_csv("test.csv")).assign(Eyes=results)
        df.to_csv('test.csv', header=True, index=False)
        

        【讨论】:

        • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-30
        • 2019-04-17
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 1970-01-01
        相关资源
        最近更新 更多