将pandas数据帧转换为cs

2024-03-29 00:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here 我有上面的数据帧,我想把它转换成一个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文件中,以便在数据帧之后添加更多的数据行。在


Tags: 文件csvto数据pathdfoutputos
1条回答
网友
1楼 · 发布于 2024-03-29 00:23:41

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

下面假设您需要两个任务:1)三个空白列和2)在Amazon/Ebay/Kindle行标题下写入数据帧值。示例数据对wdvadwevadwdmpvwempv是其名称的字符串文字:

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

输出

CSV File Output

相关问题 更多 >