小编Chr*_*ear的帖子

在python中按数字排序字符串列表

我想读一些.csv文件并打印第5列的最小值和最大值.我还想打印哪个文件我可以找到最大值或最小值.

我的代码现在是:

import pandas, glob
import numpy as np

path = "/home/path/to/log/"

fn = glob.glob(path + "*.csv") 
list_of_dfs = [pandas.read_csv(filename, header=None) for filename in fn]
k = len(list_of_dfs)
b = np.zeros((k, 1))
cnt = 0 
for i in list_of_dfs:
    b[cnt,0] = np.min(i[4])
    cnt = cnt + 1
print(np.min(b[:,0]))
print(np.argmin(b[:,0]))
Run Code Online (Sandbox Code Playgroud)

我的.csv文件命名如下:

0.csv,1.csv ... 10.csv ... 2463.csv

看到我的argmin没有显示正确的文件后,我意识到fn没有排序.我在目录中按升序发现了这个Sort文件名,解决方案是:

fn.sort(key=lambda f: int(filter(str.isdigit, f)))
Run Code Online (Sandbox Code Playgroud)

但是这行我得到以下错误:

TypeError: int() argument must be a string, a bytes-like object or a number, not 'filter' …
Run Code Online (Sandbox Code Playgroud)

python csv pandas

1
推荐指数
1
解决办法
59
查看次数

标签 统计

csv ×1

pandas ×1

python ×1