【问题标题】:Get last row of CSV file and append it onto the end of the same CSV file获取 CSV 文件的最后一行并将其附加到同一 CSV 文件的末尾
【发布时间】:2020-04-03 05:00:48
【问题描述】:

我需要检索 CSV 文件的最后一行,并将其附加到末尾以将其扩展任意 n 次。我试图用 Pandas 做到这一点:

df = pd.read_csv('file.csv')
last_row = df.iloc[-1]

last_row.to_csv('file.csv', mode='a', header=False)

但是,这会将最后一行作为单列附加到 CSV 文件中。有没有办法将最后一行按列正确附加到 CSV 文件中,最好使用 Pandas?

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    IIUC,您可以使用tailconcat 来扩展您的数据框。

    df = pd.read_csv('file.csv')
    last_row = df.tail(1)
    
    last_row = pd.concat([last_row] * n)
    
    
    last_row.to_csv('file.csv', mode='a', header=False)
    

    【讨论】:

    • 此方法确实添加了行,但它们与原始数据帧的顺序不正确。有没有办法以正确的顺序正确添加行?'
    【解决方案2】:

    回答我自己的问题:

    我已经弄清楚如何维护列的顺序并附加到现有数据框的末尾。值得注意的是pd.tail() 不保持列的顺序。

    df = pd.read_csv('file.csv')
    
    df_fluxes =  df.iloc[[-1] * n] 
    
    df_fluxes.to_csv(run_dir+'em_line_fluxes.csv', mode='a', header=False, index=False)
    

    【讨论】:

      猜你喜欢
      • 2017-07-08
      • 2016-05-23
      • 2021-09-07
      • 2012-01-05
      • 2018-09-17
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多