【发布时间】:2019-06-22 15:38:24
【问题描述】:
我是python的初学者。我对循环 glob.glob 和 np.arrange 循环有一些问题。
我有一百个 CSV 文件,如下所示:
13oct_speed_1kmh.csv
13oct_speed_2kmh.csv
and others
所有文件的结构数据如下:
Distance ID
2.14 A
82.12 B
12.45 A
21.07 B
11.42 A
我想消除基于缓冲区的距离:
np.arange(10,100,30)
array([10, 40, 70])
我使用了这个代码:
def buffer (value, threshold):
return (value < threshold)
files = glob.glob("13oct_speed_*.csv")
for f in files:
df = pd.read_csv(f)
for i in np.arange(10,100,30):
threshold = i
result_df = df[buffer(df["Distance"], threshold)]
csvFileName = f + 'Buffer_' + str(threshold) + ".csv"
result_df.to_csv(csvFileName, sep=",")
但结果很奇怪,因为循环永远不会停止(总是保存新文件)。
我希望的输出是根据缓冲区阈值消除的每个距离列文件。
我的预期输出如下所示:
13oct_speed_1kmh_buffer10.csv
13oct_speed_1kmh_buffer40.csv
13oct_speed_1kmh_buffer70.csv
13oct_speed_2kmh_buffer10.csv
13oct_speed_2kmh_buffer40.csv
13oct_speed_2kmh_buffer70.csv
如何解决?谢谢
【问题讨论】:
-
result_df = df[df["Distance"] < threshold]工作怎么样? -
谢谢你,完美。所以,缓冲区就不用定义了吧?
-
不,没有必要。