【问题标题】:How to append the result from each iteration into the CSV file?如何将每次迭代的结果附加到 CSV 文件中?
【发布时间】:2018-11-16 02:01:16
【问题描述】:

我将数值字段发送到 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))

【问题讨论】:

  • 您可能正在寻找 csv module 或 numpy tofile 功能
  • 您可以使用python your_script.py >> your_file.csv 追加到现有文件。
  • 实际上我将 python 脚本作为独立资源运行,我将在该 csv 文件之上创建 hive 表

标签: python pandas dataframe


【解决方案1】:

这样我就可以解决了。

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))

【讨论】:

    猜你喜欢
    • 2016-06-09
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    相关资源
    最近更新 更多