首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用dask read_csv读取文件名作为列名

使用dask read_csv读取文件名作为列名
EN

Stack Overflow用户
提问于 2019-10-26 08:45:19
回答 2查看 1.5K关注 0票数 3

我正在导入所有相同列的dask csv文件,columns=['Date', 'Datapint']将csv导入到4000+非常简单,对我来说效果很好。

代码语言:javascript
复制
file_paths = '/root/data/daily/'
df = dd.read_csv(file_paths+'*.csv',
                 delim_whitespace=True,
                 names=['Date','Datapoint'])

我正在尝试实现的任务是能够将'Datapoint'列命名为.csv的文件名。我知道您可以使用include_path_column = True将列设置为路径。但我想知道是否有一种简单的方法,使用该路径名作为列名,而不必在行中运行单独的步骤。

EN

回答 2

Stack Overflow用户

发布于 2019-10-26 10:01:27

我可以使用dask的延迟函数(相当简单)做到这一点:

代码语言:javascript
复制
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)
票数 6
EN

Stack Overflow用户

发布于 2019-10-29 00:04:30

我不清楚你到底想要实现什么。如果您只是尝试更改写入文件路径的列的名称,则可以设置include_path_column='New Column Name'。如果您根据每个文件的路径命名一个列,那么在连接数据之后,您似乎会得到一个相当稀疏的数组,我认为groupby可能会更好。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58567192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档