從字符串和panas-dfs的組合創(chuàng)建.csv

具有多個(gè)塊的.csv需要遵循以下格式(1個(gè)塊示例):

所以嘗試在pandas中執(zhí)行,然后寫入csv。問題在于這兩個(gè)部分(dataframes之外)上方的注釋。以下是示例代碼:

import numpy as np
import pandas as pd
h_comment = pd.DataFrame(['#(H) Header'], columns=['name'])

df1 = pd.DataFrame({'name': 'Donald Trump',
                    'state':'FL',
                    'value':'0'},
                   index=[0])


data_comment =  pd.DataFrame(['#(S) Schedule'], columns=['A'])
df2 = pd.DataFrame(np.random.rand(3,4),
columns=list('ABCD'))

to_csv1 = pd.concat([h_comment,df1])
to_csv2 = pd.concat([data_comment,df2])

問題是這些“注釋”在我的df列中,例如:

to_csv2
Out[116]: 
               A         B         C         D
0  #(S) Schedule       NaN       NaN       NaN
0       0.521739  0.622079  0.322372  0.687531
1       0.991336  0.297848  0.635697  0.025620
2       0.068900  0.898806  0.562971  0.567817

首先創(chuàng)建一個(gè)帶有注釋的.csv并在其上附加dfs的解決方案并不好,因?yàn)橛泻芏嘞裆厦孢@樣的塊會影響性能,所以我寧愿在最后寫入csv。

? 最佳回答:

您共享的圖像看起來更像Excel電子表格,而不是csv文件。

要生成與您描述的形狀匹配的csv,一種選擇是將opento_csv一起使用:

N = 2 # number of empty lines between both dfs

with open("output.csv", mode="w", newline="") as file:
    file.write("#(H) Header\n")
    df1.to_csv(file, index=False)
    file.write("\n"*N)
    file.write('#(S) Schedule\n')
    df2.to_csv(file, index=False)

輸出(Excel中的.csv):

如果需要,您可以使用ExcelWriter制作一個(gè)可以處理工作表/單元格格式的電子表格:

with pd.ExcelWriter("output.xlsx", engine="xlsxwriter") as writer:
    worksheet = writer.book.add_worksheet()
    
    header_format = writer.book.add_format({"border": None})
    title_format = writer.book.add_format({"bold": True,
                                           "italic": True,
                                           "font_size": 11})

    worksheet.write(0, 0, "#(H) Header", title_format)
    df1.to_excel(writer, index=False, startrow=1)
     
    worksheet.write(len(df1)+2, 0, "")
    worksheet.write(len(df1)+3, 0, "")
    
    worksheet.write(len(df1)+4, 0, "#(S) Schedule", title_format)
    df2.to_excel(writer, index=False, startrow=len(df1)+5)
    
    for col_num, value in enumerate(df2.columns):
        worksheet.write(len(df1)+5, col_num, value, header_format)
    
    for col_num, value in enumerate(df1.columns):
        worksheet.write(1, col_num, value, header_format)
        
    worksheet.autofit()

輸出(Excel中的.xlsx):

主站蜘蛛池模板: 亚洲一区二区三区乱码在线欧洲| 国模精品一区二区三区视频 | 伊人久久精品无码麻豆一区| 精品视频一区二区三区在线播放| 国产精品区一区二区三在线播放| 国产AV天堂无码一区二区三区| 亚洲无圣光一区二区 | 国产精品亚洲午夜一区二区三区 | 91精品国产一区二区三区左线| 丝袜人妻一区二区三区网站| 人妻无码一区二区三区四区| 精品久久综合一区二区| 伊人久久一区二区三区无码| 国内精品一区二区三区东京| 无码精品一区二区三区免费视频| 自慰无码一区二区三区| 国产乱码伦精品一区二区三区麻豆 | 狠狠爱无码一区二区三区| 免费看AV毛片一区二区三区| 无码人妻精一区二区三区| 无码中文人妻在线一区| 亚洲AV网一区二区三区| 无码人妻aⅴ一区二区三区| 极品少妇一区二区三区四区| 国内精品一区二区三区最新| 国产成人一区二区三区电影网站 | 无码AV动漫精品一区二区免费| 一区二区三区视频免费| 免费在线观看一区| 国产成人精品一区二区三区| 精品一区二区三区色花堂| 国精品无码一区二区三区在线蜜臀| 国产AV国片精品一区二区| 人妻少妇精品一区二区三区| 亚洲av不卡一区二区三区| 亚洲综合一区二区| 国产精品美女一区二区| 一区二区免费国产在线观看| 又硬又粗又大一区二区三区视频 | 日韩人妻无码一区二区三区99| 精品国产一区二区三区久久久狼 |