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

时间:2018-08-20 13:35:48

标签: python pandas dask

我有12个与一年中每个月相对应的文件。 它们具有MultipleIndexes和一列,名称是给定的月份。

一月文件

                    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

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

1 个答案:

答案 0 :(得分:1)

如果您想要超出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])