Py学习  »  Python

Python:每次通过for循环时唯一的CSV输出

JF44 • 3 年前 • 1100 次点击  

我有一个for循环,它正在执行一些预处理,在循环结束时,我想输出到csv。我可以将其输出,但每次都会被覆盖。每次我都想要一个唯一的文件。提前谢谢你的帮助。

for filename in os.scandir(directory):
    df = pd.read_csv(filename, index_col=('Full_Name'))
    df = df[(df.Draft_Year>2003) & (df.Draft_Year<2022)]
    df = df.drop(['Position','College','Draft_Year'], axis=1)
    scaler = MinMaxScaler()
    df = pd.DataFrame(scaler.fit_transform(df), columns = df.columns, index=df.index)
    imputer = KNNImputer(n_neighbors=5)
    df = pd.DataFrame(imputer.fit_transform(df),columns = df.columns, index=df.index)
    df = df.to_csv(r"D:\Model Data\Exports\NFL Draft Model\processed.csv", index=True, header=True)`
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129371
 
1100 次点击  
文章 [ 2 ]  |  最新文章 3 年前
Mohammad Mufassir Khan
Reply   •   1 楼
Mohammad Mufassir Khan    3 年前

每次写不同的文件名。一种方法可以是:

i = 1    
for filename in os.scandir(directory):
        df = pd.read_csv(filename, index_col=('Full_Name'))
        df = df[(df.Draft_Year>2003) & (df.Draft_Year<2022)]
        df = df.drop(['Position','College','Draft_Year'], axis=1)
        scaler = MinMaxScaler()
        df = pd.DataFrame(scaler.fit_transform(df), columns = df.columns, index=df.index)
        imputer = KNNImputer(n_neighbors=5)
        df = pd.DataFrame(imputer.fit_transform(df),columns = df.columns, index=df.index)
        df = df.to_csv(f"D:\Model Data\Exports\NFL Draft Model\processed{i}.csv", index=True, header=True)
        i+=1
eshirvana
Reply   •   2 楼
eshirvana    3 年前

要在输出中使用原始文件名,请执行以下操作:

for filename in os.scandir(directory):
    df = pd.read_csv(filename, index_col=('Full_Name'))
    df = df[(df.Draft_Year>2003) & (df.Draft_Year<2022)]
    df = df.drop(['Position','College','Draft_Year'], axis=1)
    scaler = MinMaxScaler()
    df = pd.DataFrame(scaler.fit_transform(df), columns = df.columns, index=df.index)
    imputer = KNNImputer(n_neighbors=5)
    df = pd.DataFrame(imputer.fit_transform(df),columns = df.columns, index=df.index)
    df = df.to_csv(fr"D:\Model Data\Exports\NFL Draft Model\{filename.name.split('.')[0]}_processed.csv", index=True, header=True)