【发布时间】:2019-12-02 11:14:54
【问题描述】:
以下代码用于根据给定的时间值拆分 csv 文件。问题是这段代码不会捕获所有的 csv 文件。例如在 TT1 文件夹中有几个子文件夹。这些子文件夹里面有文件夹。在这些子文件夹中有 csv 文件。当我将路径指定为 path='/root/Desktop/TT1 时,它不会处理这些子文件夹中的所有文件。请问如何解决这个问题。
在@Serafeim 的回答 (https://stackoverflow.com/a/57110519/5025009) 之后,我尝试了这个:
import pandas as pd
import numpy as np
import glob
import os
path = '/root/Desktop/TT1/'
mystep = 0.4
#define the function
def data_splitter(df, name):
max_time = df['Time'].max() # get max value of Time for the current csv file (df)
myrange= np.arange(0, max_time, mystep) # build the threshold range
for k in range(len(myrange)):
# build the upper values
temp = df[(df['Time'] >= myrange[k]) & (df['Time'] < myrange[k] + mystep)]
temp.to_csv("/root/Desktop/T1/{}_{}.csv".format(name, k))
for filename in glob.glob(os.path.join(path, '*.csv')):
df = pd.read_csv(filename)
name = os.path.split(filename)[1] # get the name of the file
data_splitter(df, name)
【问题讨论】:
标签: python python-3.x pandas csv glob