簡體   English   中英

使用 python 將數據寫入具有列名的 CSV 文件

[英]Write data to CSV file with column name using python

我正在使用下面的 python 代碼將數據寫入具有列名的 CSV 文件。

def get_filename_datetime():
    # Use current date to get a text file name.
    return "Report-" + str(datetime.date.today())
# Get full path for writing.
filename = get_filename_datetime()
Data = [["FirstName", "LastName","Failed_User_Id"],
          [firstname, lastname, faileduserid]]
Reportfilename = os.path.join(reportspath, filename)
myfile = open(Reportfilename + '-Results.csv', "a+")
with myfile:
    writer = csv.writer(myfile)
    writer.writerows(Data)

我在一個文件中得到 output 為:

實際輸出

我預期的 output 是:

我在一個文件中得到 output 為:

預期產出

但是我正在為每一行打印列名。

那是因為它們在列表Data中:

Data = [["FirstName", "LastName","Failed_User_Id"],
                      [firstname, lastname, faileduserid]]

只需刪除它們:

Data = [[firstname, lastname, faileduserid]]

如何在此處編寫 header 的示例。

我猜你在循環中使用方法get_filename_datetime ,所以你一直將它附加到 CSV 文件中:

Data = [["FirstName", "LastName","Failed_User_Id"],
                      [firstname, lastname, faileduserid]]

解決方案是將列名移到循環之外,append 僅行數據:

 Data = [[firstname, lastname, faileduserid]]

您正在重復標題,因為每次添加一行時,您也會再次添加標題您需要將Data中的第一行分開並寫入一次

def get_filename_datetime():
    # Use current date to get a text file name.
    return "Report-" + str(datetime.date.today())
# Get full path for writing.
filename = get_filename_datetime()
headers = ["FirstName", "LastName","Failed_User_Id"]     
Data = [firstname, lastname, faileduserid]
Reportfilename = os.path.join(reportspath, filename)
myfile = open(Reportfilename + '-Results.csv', "a+")
with myfile:
   writer = csv.writer(myfile)
   if(os.stat(myfile).st_size == 0):
      writer.writerows(header) 
    writer.writerows(Data)

@mtdot 和 @schoon 的兩個答案都是正確的

如果要使用 pandas

你可以用這個

`
columns = ['FirstName', 'LastName', 'Failed_User_Id']
header = True
for dataset in datasets:
    df = pd.DataFrame(dataset)
    df = df[columns]
    mode = 'a+'
    df.to_csv('./new.csv', encoding='utf-8', mode=mode, header=header, index=False)
    header = False
`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM