御宅童子 2023-10-19 09:51 采纳率: 33.3%
浏览 7

python pandas库如何实现不覆盖填入表格

如题。我在主函数里出现了一个循环,每一个循环会出现一个列表,一个列表有四个元素,第一次循环会分别将四个元素用pandas库添加到excel表格的A1,B1,C1,D1位置上。当第二次循环结束后,第二个列表的值会覆盖第一个列表的值,出现在A1,B1,C1,D1的位置上。要如何实现每一次循环出现的值加到原有的下一列上?

部分代码如下。其中a,b,c,d的值每一次循环就会改变


a =print_first_at_context(text)
b =find_first_string_in_text(text, string_list)
c =find_first_university_sentence(text)
d =filename
lst = [d,a,b,c]
df = pd.DataFrame([lst], columns=["A", "B", "C", "D"])

df.to_excel("output.xlsx", index=False)

  • 写回答

2条回答 默认 最新

  • Leodong. 2023-10-19 09:56
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    要实现每次循环将值添加到原有的下一列上,而不是覆盖原有列的值,可以在循环外部创建一个空的DataFrame,然后在循环内部将每次循环得到的列表添加到这个空的DataFrame中。最后将整个DataFrame写入Excel文件。以下是修改后的代码:

    import pandas as pd
    
    # 在循环外部创建一个空的DataFrame
    df_all = pd.DataFrame(columns=["A", "B", "C", "D"])
    
    # 循环
    for i in range(循环次数):
        a = print_first_at_context(text)
        b = find_first_string_in_text(text, string_list)
        c = find_first_university_sentence(text)
        d = filename
        lst = [d, a, b, c]
        
        # 将每次循环得到的列表添加到空的DataFrame中
        df_all = df_all.append(pd.DataFrame([lst], columns=["A", "B", "C", "D"]), ignore_index=True)
    
    # 将整个DataFrame写入Excel文件
    df_all.to_excel("output.xlsx", index=False)
    

    这样,每次循环得到的值都会添加到原有的下一列上,而不是覆盖原有列的值。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论

报告相同问题?

问题事件

  • 创建了问题 10月19日

悬赏问题

  • ¥15 大一新生的编程,不知道该怎么弄。
  • ¥15 关于树的路径求解问题
  • ¥15 yolo在训练时候出现File "D:\yolo\yolov5-7.0\train.py"line 638,in <module>
  • ¥30 戴尔inspiron独显直连
  • ¥15 进行一项代码设计遇到问题
  • ¥15 Mutisim中关于74LS192N计数器芯片设计(计数器)
  • ¥50 fastadmin后台无法删除文件
  • ¥15 oracle查询Socket read timed out错误
  • ¥15 matlab支持向量机使用错误
  • ¥99 利用C/C++语言,使用TCP/IP协议,编一个简易聊天程序