Python 将数据帧转换为csv

Python 将数据帧转换为csv,python,csv,pandas,Python,Csv,Pandas,我有上面的数据框,希望将其转换为csv文件。 我目前正在使用df.to_csv('my_file.csv')转换它,但我想保留3个空白列。对于上面文件的行,我有以下过程 dirname = os.path.dirname(os.path.abspath(__file__)) csvfilename = os.path.join(dirname, 'MainFile.csv') with open(csvfilename, 'wb') as output_file: writer = cs

我有上面的数据框,希望将其转换为csv文件。
我目前正在使用
df.to_csv('my_file.csv')
转换它,但我想保留3个空白列。对于上面文件的行,我有以下过程

dirname = os.path.dirname(os.path.abspath(__file__))
csvfilename = os.path.join(dirname, 'MainFile.csv')
with open(csvfilename, 'wb') as output_file:
    writer = csv.writer(output_file, delimiter=',')
    writer.writerow([])
    writer.writerow(["","Amazon","Weekday","Weekend"])
    writer.writerow(["","Ebay",wdvad,wevad])
    writer.writerow(["","Kindle",wdmpv,wempv])
    writer.writerow([])

我想将数据框合并到空白空间后面的三个空白列中。如何将延续中的数据框添加到现有csv文件中,以便在数据框之后添加更多包含数据的行

考虑最初按原样将数据帧输出到临时文件。然后,在创建MainCSV的过程中,读入临时文件,迭代写入行,然后销毁临时文件。另外,在将dataframe写入csv之前,请创建三个空白列

下面假设您需要两个任务:1)三个空白列和2)在Amazon/Ebay/Kindle行标题下写入数据帧值。示例数据使用wdvad、wevad、wdmpv和wempv的随机正常值和标量值,它们是名称的字符串文字:

import csv, os
import pandas as pd

# TEMP DF CSV
dirname = os.path.dirname(os.path.abspath(__file__))    
df = pd.DataFrame([np.random.normal(loc=3.0, scale=1.0, size=24)*1000 for i in range(7)],
                  index=['Monday', 'Tuesday', 'Wednesday', 'Thursday', 
                         'Friday', 'Saturday', 'Sunday'])
df['Blank1'], df['Blank2'], df['Blank3'] = None, None, None   

df.to_csv(os.path.join(dirname, 'temp.csv'))       # OUTPUT TEMP DF CSV

# MAIN CSV
csvfilename = os.path.join(dirname, 'MainFile.csv')
tempfile = os.path.join(dirname, 'temp.csv')

wdvad = 'wdvad'; wevad = 'wevad'; wdmpv = 'wdmpv'; wempv = 'wempv'

with open(csvfilename, 'w', newline='') as output_file:
    writer = csv.writer(output_file)
    writer.writerow([""])
    writer.writerow(["","Amazon","Weekday","Weekend"])
    writer.writerow(["","Ebay",wdvad,wevad])
    writer.writerow(["","Kindle",wdmpv,wempv])
    writer.writerow([""])

    with open(tempfile, 'r') as data_file:
        for line in data_file:
            line = line.replace('\n', '')
            row = line.split(",")            
            writer.writerow(row)

os.remove(tempfile)                               # DESTROY TEMP DF CSV
输出


也许我误解了这个问题,但您是否有理由不能创建一个具有所需格式的数据帧,然后再编写该数据帧?@elelias不,我不能,它包含其他几行,每行的格式不同。另外,我花了很多时间把它们做成这种格式。只剩下数据帧来输入csv文件,我不知道怎么做。你能提出一些建议吗?你能不能用默认值将这些列添加到df中,然后写入csv?