使用条件过滤子目录中的 csv
Filtering through csv's in sub-directories with criteria
目前,我有这段代码可以找到所有“*_results.csv”文件并将这些文件复制到新目录:
import os.path
import shutil
base_dir = r'\temp'
dest_dir = r'\temp1'
for root, dirs, files in os.walk(base_dir):
for filename in [f for f in files if f.endswith("_results.csv")]:
shutil.copy2((os.path.join(root, filename)), dest_dir)
所有这些 csv 文件都有两列,但行数各不相同。所有的 csv 文件在 A 列中都有两行显示“功率”和“速度”,B 列中有功率和速度的值。需要注意的是,“功率”和“速度”有时位于不同的行中,这一点很重要A 列中的数字取决于 csv。
例如--
x x
x x
Power -20
x x
Speed 35
我正在寻找所有功率 >= -18 或速度 - 功率 >= 5 的 csv。
如有任何帮助,我们将不胜感激。谢谢
对于每个文件,您可以:
df = pd.read_csv("file.csv")
powerdf = df[df.A == "Power"]
thepower = powerdf.iloc[0][B]
if thepower >= -18:
return True
speeddf = ...
以此类推
目前,我有这段代码可以找到所有“*_results.csv”文件并将这些文件复制到新目录:
import os.path
import shutil
base_dir = r'\temp'
dest_dir = r'\temp1'
for root, dirs, files in os.walk(base_dir):
for filename in [f for f in files if f.endswith("_results.csv")]:
shutil.copy2((os.path.join(root, filename)), dest_dir)
所有这些 csv 文件都有两列,但行数各不相同。所有的 csv 文件在 A 列中都有两行显示“功率”和“速度”,B 列中有功率和速度的值。需要注意的是,“功率”和“速度”有时位于不同的行中,这一点很重要A 列中的数字取决于 csv。
例如--
x x
x x
Power -20
x x
Speed 35
我正在寻找所有功率 >= -18 或速度 - 功率 >= 5 的 csv。
如有任何帮助,我们将不胜感激。谢谢
对于每个文件,您可以:
df = pd.read_csv("file.csv")
powerdf = df[df.A == "Power"]
thepower = powerdf.iloc[0][B]
if thepower >= -18:
return True
speeddf = ...
以此类推