簡體   English   中英

循環使用 to_csv 僅打印最后一個文件(Python)

[英]Loop using to_csv only printing last file (Python)

我正在嘗試從文件夾中加載多個 csv 文件,使用計算每個文件缺失值的函數,然后保存包含輸出的新 csv 文件。 當我編輯腳本以打印輸出時,我得到了預期的結果。 但是,循環只會將最后一個文件保存到目錄中。 我正在使用的代碼是:

from pathlib import Path
import pandas as pd
import os
import glob

files = glob("C:/Users/61437/Desktop/test_folder/*.csv") # get all csv's from folder

n = 0

for file in files:
    print(file)
    df = pd.read_csv(file, index_col = False)
    d = calc_missing_prices(df) # calc_missing_prices is a user defined function
    print(d)
    d.to_csv(r'C:\Users\61437\Desktop\test_folder\derived_files\derived_{}.csv'.format(n+1), index = False)

print() 命令返回預期的輸出,對於我的數據是:

C:/Users/61437/Desktop/test_folder\file1.csv
   V_150  V_200  V_300  V_375  V_500  V_750  V_1000
0   3.00   2.75   4.50   6.03   8.35  12.07   15.00
1   2.32   3.09   4.63   5.00   9.75  12.50   12.25
2   1.85   2.47   3.70   4.62   6.17   9.25   12.33
3   1.75   2.00   4.06   6.50   6.78  10.16   15.20
C:/Users/61437/Desktop/test_folder\file2.csv
   V_300  V_375  V_500  V_750  V_1000
0   4.00   4.50   6.06   9.08   11.00
1   3.77   5.00   6.50   8.50   12.56
2   3.00   3.66   4.88   7.31    9.50
C:/Users/61437/Desktop/test_folder\file3.csv
   V_500  V_750  V_1000
0   5.50   8.25   11.00
1   6.50   8.50   12.17
2   4.75   7.12    9.50

但是,唯一保存的 csv 文件是“衍生_1.csv”,其中包含 file3.csv 的輸出

我在做什么阻止創建所有三個文件?

您沒有在循環內增加n 您的數據存儲在文件derived_1.csv ,每次迭代都會覆蓋該文件。 for循環執行完畢后,將只保存最后一個 csv。

for循環中包含行n += 1以在每次迭代時將其增加 1。

暫無
暫無

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

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