Python Dask - 读取具有不同列名的多个文件

Python Dask - Read multiple files with different column names

我有12个文件对应一年中的每个月。 他们有多个索引和一个名称为给定月份的列。

一月档

                    Jan
index_0 | index_1 | 

bla     | bla     |   3

二月档

                    Feb
index_0 | index_1 | 

bla     | bla     |   2

我想像那样阅读那些文件:

df = dd.read_csv(
    location + "*.txt", 
    sep=';',
    header=0
)

输出

                    Jan
index_0 | index_1 | 

bla     | bla     |   3
bla     | bla     |   2

问题是我丢失了一条信息,我没有月份了。

预期输出

                    Month  | Value
index_0 | index_1 | 

bla     | bla     |   Jan        3
bla     | bla     |   Feb        2

如何将月份保留在我的数据框中?

当您想要超出 read_csv 提供的自定义行为时,您应该转向 dask.delayed:

def load_func(fn):

    df = pd.read_csv(
        location + "*.txt", 
        sep=';',
        header=0
    )
    df['month'] = df.columns[0]
    df.columns = ['value', 'month']
    return df


ddf = dd.from_delayed([dask.delayed(load_func)(fn) for fn in files])