我想以可能的最快方式将多个csv文件并置一个列值作为条件。
我有一些有效的代码,但是在我将数据帧缩小到所需的站点之前(通过station_number
列中的值),它将所有csv文件的所有行连接在一起。在进行串联之前,我想先选择需要的行,这样可以缩短运行时间。谢谢您的任何建议!
station = int(input("station number? "))
def Datastations (station,path):
filepaths = [os.path.join(path, f) for f in listdir(path) if f.endswith('.csv')]
df = pd.concat(map(pd.read_csv, filepaths))
df = df[df.station_number==station]
return (df)
df1 = Datastations(station,"refdata/obs")
df2 = Datastations(station,"refdata/BoM_ETA_20160501-20170430/obs")
答案 0 :(得分:1)
您没有说您遇到了什么问题,所以我只能为您重新排序:
import pandas as pd
import os
def Datastations (station,path):
filepaths = [os.path.join(path, f) for f in os.listdir(path) if f.endswith('.csv')]
def process_csv(file_name):
df = pd.read_csv(file_name)
return df[df.station_number==station]
return pd.concat(map(process_csv, filepaths))