Python 运行 多个 csv 文件上的脚本
Python run script on several csv files
我正在尝试 运行 我的脚本在几个 .csv 文件上并输出每个文件的结果。我的代码片段如下-
import sys
import os
import logging
import subprocess
import argparse
import pandas as pd
import glob
files = glob.glob('/scratch/*/*.csv')
for file in files:
df = pd.read_csv(file,delimiter = ',',skiprows=range(1,11))
#do some calculation on each file
#calculate the final value
metric = (max(max(dif_r1a),max(dif_r1c),max(dif_r1g),max(dif_r1t),max(dif_r2a),max(dif_r2c),max(dif_r2g),max(dif_r2t)))
#output the final value for each csv file
print(os.path.basename(file) + ' ' + str(metric))
我得到的输出仅针对单个 csv 文件
file1.csv 0.25
如何迭代它以输出所有 csv 文件的值?
谢谢
从上面的代码中可以看出,您为每个 .csv 文件创建了一个数据框,但只计算最终值并在 for 循环执行后打印。如果您想为每个数据帧执行此操作,则这些需要在 for 循环中:
import sys
import os
import logging
import subprocess
import argparse
import pandas as pd
import glob
files = glob.glob('/scratch/*/*.csv')
for file in files:
df = pd.read_csv(file,delimiter = ',',skiprows=range(1,11))
#do some calculation on each file
#calculate the final value
metric = (max(max(dif_r1a),max(dif_r1c),max(dif_r1g),max(dif_r1t),max(dif_r2a),max(dif_r2c),max(dif_r2g),max(dif_r2t)))
#output the final value for each csv file
print(os.path.basename(file) + ' ' + str(metric))
这是您目前拥有的内容,但您希望将其更改为:
import sys
import os
import logging
import subprocess
import argparse
import pandas as pd
import glob
files = glob.glob('/scratch/*/*.csv')
for file in files:
df = pd.read_csv(file,delimiter = ',',skiprows=range(1,11))
#do some calculation on each file
#calculate the final value
metric =
(max(max(dif_r1a),max(dif_r1c),max(dif_r1g),max(dif_r1t), \
max(dif_r2a),max(dif_r2c),max(dif_r2g),max(dif_r2t)))
#output the final value for each csv file
print(os.path.basename(file) + ' ' + str(metric))
然而,这也可能是由于评论的格式所致。
我正在尝试 运行 我的脚本在几个 .csv 文件上并输出每个文件的结果。我的代码片段如下-
import sys
import os
import logging
import subprocess
import argparse
import pandas as pd
import glob
files = glob.glob('/scratch/*/*.csv')
for file in files:
df = pd.read_csv(file,delimiter = ',',skiprows=range(1,11))
#do some calculation on each file
#calculate the final value
metric = (max(max(dif_r1a),max(dif_r1c),max(dif_r1g),max(dif_r1t),max(dif_r2a),max(dif_r2c),max(dif_r2g),max(dif_r2t)))
#output the final value for each csv file
print(os.path.basename(file) + ' ' + str(metric))
我得到的输出仅针对单个 csv 文件
file1.csv 0.25
如何迭代它以输出所有 csv 文件的值?
谢谢
从上面的代码中可以看出,您为每个 .csv 文件创建了一个数据框,但只计算最终值并在 for 循环执行后打印。如果您想为每个数据帧执行此操作,则这些需要在 for 循环中:
import sys
import os
import logging
import subprocess
import argparse
import pandas as pd
import glob
files = glob.glob('/scratch/*/*.csv')
for file in files:
df = pd.read_csv(file,delimiter = ',',skiprows=range(1,11))
#do some calculation on each file
#calculate the final value
metric = (max(max(dif_r1a),max(dif_r1c),max(dif_r1g),max(dif_r1t),max(dif_r2a),max(dif_r2c),max(dif_r2g),max(dif_r2t)))
#output the final value for each csv file
print(os.path.basename(file) + ' ' + str(metric))
这是您目前拥有的内容,但您希望将其更改为:
import sys
import os
import logging
import subprocess
import argparse
import pandas as pd
import glob
files = glob.glob('/scratch/*/*.csv')
for file in files:
df = pd.read_csv(file,delimiter = ',',skiprows=range(1,11))
#do some calculation on each file
#calculate the final value
metric =
(max(max(dif_r1a),max(dif_r1c),max(dif_r1g),max(dif_r1t), \
max(dif_r2a),max(dif_r2c),max(dif_r2g),max(dif_r2t)))
#output the final value for each csv file
print(os.path.basename(file) + ' ' + str(metric))
然而,这也可能是由于评论的格式所致。