Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.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添加新行并将其填充到现有excel文件中_Python_Dataframe_Append_Row - Fatal编程技术网

如何使用Python添加新行并将其填充到现有excel文件中

如何使用Python添加新行并将其填充到现有excel文件中,python,dataframe,append,row,Python,Dataframe,Append,Row,我需要创建一个excel文件,其中包含不同函数的输出,例如日期、重复变量的数量。。。 我设法创建了一个excel文件,其中包含第一个函数的输出,但当我试图将其与第二个函数的输出一起追加时,它不起作用。我不知道如何将不同函数的输出添加到同一个excel文件中 示例: 功能1: import xlsxwriter import openpyxl import pandas as pd def NGTP(): VIN_FFF = 0 N_Alert =0 for x

我需要创建一个excel文件,其中包含不同函数的输出,例如日期、重复变量的数量。。。 我设法创建了一个excel文件,其中包含第一个函数的输出,但当我试图将其与第二个函数的输出一起追加时,它不起作用。我不知道如何将不同函数的输出添加到同一个excel文件中

示例: 功能1:

import xlsxwriter 
import openpyxl
import pandas as pd

def NGTP():

    VIN_FFF = 0
    N_Alert =0


    for x in flat_list:
        if "NGTPSM HTTP request" in str(x):
           VIN_FFF+=1
           N_Alert =5
    workbook = xlsxwriter.Workbook('Results.xlsx') 
    worksheet = workbook.add_worksheet("sheet") 
    parametres = ( 
        ['VIN_FFF ', VIN_FFF],
        ['Nombre d alertes ', N_Alert],    
    ) 

    # Start from the first cell. Rows and 
    # columns are zero indexed. 
    row = 0
    col = 0

    # Iterate over the data and write it out row by row. 
    for name, parametres in (parametres): 
        worksheet.write(row, col, name) 
        worksheet.write(row, col + 1, parametres) 
        row += 1

    workbook.close() 
import xlsxwriter 
from openpyxl import load_workbook
from openpyxl import Workbook
import pandas as pd

filename = "Results.xlsx"
def Date2Roulage():
    file_name='OutputDLT.xlsx'
    df = pd.read_excel(file_name ,header=0, index= False)
    d= df.iloc[0,2]
    #d='2015-01-08 22:44:09' 
    date=pd.to_datetime(d).date()
    date=list(date)
    print('Date de roulage: ', date)
    workbook = xlsxwriter.Workbook('Results.xlsx') 
    worksheet = workbook.add_worksheet("sheet") 
    parametres = ( 
        ['Date de roulage ', date],

    ) 

    # Start from the first cell. Rows and 
    # columns are zero indexed. 
    row = 2
    col = 0

    # Iterate over the data and write it out row by row. 
    for name, parametres in (parametres): 
        worksheet.write(row, col, name) 
        worksheet.write(row, col + 1, parametres) 
        row += 1
    for row_ in parametres:
        worksheet.append(row_)

    workbook.save(filename)
    workbook.close()
功能2:

import xlsxwriter 
import openpyxl
import pandas as pd

def NGTP():

    VIN_FFF = 0
    N_Alert =0


    for x in flat_list:
        if "NGTPSM HTTP request" in str(x):
           VIN_FFF+=1
           N_Alert =5
    workbook = xlsxwriter.Workbook('Results.xlsx') 
    worksheet = workbook.add_worksheet("sheet") 
    parametres = ( 
        ['VIN_FFF ', VIN_FFF],
        ['Nombre d alertes ', N_Alert],    
    ) 

    # Start from the first cell. Rows and 
    # columns are zero indexed. 
    row = 0
    col = 0

    # Iterate over the data and write it out row by row. 
    for name, parametres in (parametres): 
        worksheet.write(row, col, name) 
        worksheet.write(row, col + 1, parametres) 
        row += 1

    workbook.close() 
import xlsxwriter 
from openpyxl import load_workbook
from openpyxl import Workbook
import pandas as pd

filename = "Results.xlsx"
def Date2Roulage():
    file_name='OutputDLT.xlsx'
    df = pd.read_excel(file_name ,header=0, index= False)
    d= df.iloc[0,2]
    #d='2015-01-08 22:44:09' 
    date=pd.to_datetime(d).date()
    date=list(date)
    print('Date de roulage: ', date)
    workbook = xlsxwriter.Workbook('Results.xlsx') 
    worksheet = workbook.add_worksheet("sheet") 
    parametres = ( 
        ['Date de roulage ', date],

    ) 

    # Start from the first cell. Rows and 
    # columns are zero indexed. 
    row = 2
    col = 0

    # Iterate over the data and write it out row by row. 
    for name, parametres in (parametres): 
        worksheet.write(row, col, name) 
        worksheet.write(row, col + 1, parametres) 
        row += 1
    for row_ in parametres:
        worksheet.append(row_)

    workbook.save(filename)
    workbook.close()
它不会产生错误,但我想它不起作用,因为我试图同时创建同一个文件两次

这是我的主要代码:

from Date_de_roulage_Fct  import *
from Navco_Fct  import *
Date2Roulage()
Navco()
根据建议的解决方案,我已更新了第二个函数,但出现了一个错误:

TypeError: 'datetime.date' object is not iterable
我尝试了这个解决方案
date=list(date)
,但它不起作用

必须创建生成的excel文件,如下图所示:

不能使用
xlsxwriter
将新行附加到现有文件中。 您可以使用本机具有此选项的
openpyxl
(您已导入的):

from openpyxl import Workbook
from openpyxl import load_workbook

filename = "Results.xlsx"
new_row = ['a', 'b', 'c']

# Confirm file exists. 
# If not, create it, add headers, then append new data
try:
    wb = load_workbook(filename)
    ws = wb.worksheets[0]  # select first worksheet
except FileNotFoundError:
    # excel header if the file does not exists
    headers_row = ['Header 1', 'Header 2', 'Header 3']
    wb = Workbook()
    ws = wb.active
    ws.append(headers_row)

ws.append(new_row)
wb.save(filename)
如果您喜欢使用
xlsxwriter
,您可以读取前面的所有行,并用新数据重写它们

对于您的输入,您需要如下所示:

for row_ in parametres: 
        ws.append(row_)
wb.save(filename)

你需要把它们作为一个整体打开lists@A.khou检查我答案的最后一部分。有一个更新我已经更新了我的函数,但是出现了一个类型错误,如我更新的帖子中所示。你需要删除这个for语句->
for name,parametres in(parametres)
,只留下我建议你的一个,因为你使用的是混合类。您不再需要使用xlswriter库