首页 > 解决方案 > 如何将每次迭代的结果附加到 CSV 文件中?

问题描述

我将数值字段发送到 for 循环并计算最大值、最小值和百分位数。我想将每个结果(最后一个打印语句)存储到 csv 文件中。我真的被这里打动了。

for 循环中的每次迭代都会打印如下结果:

emp_id, 10, 23, 45.4

我想将这些结果保存在 csv 文件中。

import pandas as pd
import numpy as np

data = pd.read_csv(r'C:\Users\spanda031\Downloads\test_19.csv')
#abc=data.dtypes
#print(abc)
df = data.select_dtypes(include='number')
cols = df.columns.values
print(cols)
arr = df.values
#print("new array ", arr)
#with open(r'C:\Users\spanda031\Downloads\test_19.csv') as f:
#    d_reader = csv.DictReader(f)

    #get fieldnames from DictReader object and store in list
#    headers = d_reader.fieldnames
#    print(headers)
for line in cols:
        #print value in MyCol1 for each row
        #print(line)        
        v3=np.array(data[line])
        #print(v3)        
        print(line,",",v3.min(),",",v3.max(),",",np.percentile(v3, 25))

标签: pythonpandasdataframe

解决方案


这样我可以解决它。

res_df=line,v3.min(),v3.max(),np.percentile(v3, 25),np.std(v3)      
    with open('C:\\Users\\spanda031\\Downloads\\abccc.csv', 'a', newline='') as csvfile:
        writerows = csv.writer(csvfile, delimiter=',',
                        quotechar='"', quoting=csv.QUOTE_MINIMAL)
        writerows.writerow(map(lambda x: x, res_df))

推荐阅读