如何在循环中将数据框导出为 CSV

How to export data frame as CSV in a loop

我在 10 次迭代的循环中分析一些数据,每次迭代代表一个数据集。我已经设法在每次迭代结束时创建一个带有 pandas 的数据框,现在我需要用不同的名称导出每个数据框。这是代码。

for t in range(len(myFiles)):
    DATA = np.array(importdata(t))
    data = DATA[:,1:8]
    Numbers = data[:,0:5]
    Stars = data[:,5:7]
    [numbers,repetitions]=(Frequence(Numbers))
    rep_n,freq_n = (translate(repetitions,data))
    [stars,Rep_s] = (Frequence(Stars))
    rep_s,freq_s = (translate(Rep_s,data))
    DF1 = dataframe(numbers,rep_n,freq_n)
    DF2 = dataframe(stars,rep_s,freq_s)

数据帧 DF1 和 DF2 必须在每次循环迭代中以不同的名称单独存储。

您可以创建 DataFrame 列表:

ListDF1, ListDF2 = [], []
for t in range(len(myFiles)):
   ...
   rep_s,freq_s = (translate(Rep_s,data))
   ListDF1.append(dataframe(numbers,rep_n,freq_n))
   ListDF2.append(dataframe(stars,rep_s,freq_s))

然后对于 select DataFrame 使用索引:

#get first DataFrame
print (ListDF1[0]) 

编辑:如果需要导出不同的文件名,请对 DF1_0.csv, DF2_0.csv 使用 t 变量,然后 DF1_1.csv, DF2_1.csv,...文件名,因为 python 从 [=16] 开始计数=]:

 for t in range(len(myFiles)):
     ...
     DF1.to_csv(f'DF1_{t}.csv')
     DF2.to_csv(f'DF2_{t}.csv')

您可以使用日期时间的微秒,因为它会有所不同

from datetime import datetime

for t in range(len(myFiles)):
    DATA = np.array(importdata(t))
    data = DATA[:,1:8]
    Numbers = data[:,0:5]
    Stars = data[:,5:7]
    [numbers,repetitions]=(Frequence(Numbers))
    rep_n,freq_n = (translate(repetitions,data))
    [stars,Rep_s] = (Frequence(Stars))
    rep_s,freq_s = (translate(Rep_s,data))
    DF1 = dataframe(numbers,rep_n,freq_n)
    DF2 = dataframe(stars,rep_s,freq_s)

    DF1.to_csv(f'DF1_{datetime.now().strftime('%f')}.csv')
    DF2.to_csv(f'DF2_{datetime.now().strftime('%f')}.csv')