我正在导入 4000 多个具有相同列的 csv 文件,columns=['Date', 'Datapint']将 csv 导入到 dask 非常简单,对我来说效果很好。
file_paths = '/root/data/daily/'
df = dd.read_csv(file_paths+'*.csv',
delim_whitespace=True,
names=['Date','Datapoint'])
Run Code Online (Sandbox Code Playgroud)
我试图实现的任务是能够将'Datapoint'列命名为 .csv 的文件名。我知道您可以使用include_path_column = True. 但我想知道是否有一种简单的方法可以使用该路径名作为列名,而不必在该行中运行单独的步骤。
我能够使用 dask 的延迟功能做到这一点(相当直接):
import pandas as pd
import dask.dataframe as dd
from dask import delayed
import glob
path = r'/root/data/daily' # use your path
file_list = glob.glob(path + "/*.csv")
def read_and_label_csv(filename):
# reads each csv file to a pandas.DataFrame
df_csv = pd.read_csv(filename,
delim_whitespace=True,
names=['Date','Close'])
df_csv.rename(columns={'Close':path_2_column}, inplace=True)
return df_csv
# create a list of functions ready to return a pandas.DataFrame
dfs = [delayed(read_and_label_csv)(fname) for fname in file_list]
# using delayed, assemble the pandas.DataFrames into a dask.DataFrame
ddf = dd.from_delayed(dfs)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1356 次 |
| 最近记录: |