0

我有一个目录,其中包含我想要更改的全套 csv 文件。每个 csv 都有一行包含日期,我想添加一个从文件长度倒数到 1 的列(因此文件中最后一个最近的日期在该列中的值为 1。

我尝试了以下方法:

>import os
>import pandas as pd

>for f in os.listdir(path):

>    df = pd.read_csv(f)

>    df['Countdown'] = range(len(df), 1, -1)

这给了我一个错误

FileNotFoundError:文件 b'Data.csv' 不存在

这很奇怪,因为它给出了目录中数据文件的特定名称,因此它可以清楚地看到该文件,因为它在错误消息中使用了它的名称。

我也尝试过使用 glob。

>import glob

>data_set = glob.glob(path)

>for f in data_set:

>    df = pd.read_csv(f)

>    df['Countdown'] = range(len(df), 1, -1)

这不起作用,因为它说:

ValueError:值的长度与索引的长度不匹配

这个错误对我来说很有意义,因为随着我向其中添加更多文件,数据帧的长度会不断增加,因此“len(df)”参数正在发生变化并且与索引不匹配。

我相信我正在尝试做的事情并不太独特,我只是很难找到执行这项任务的最佳方法。同样,我正在寻找的结果是,每个文件都有一个从最早日期倒数到数据帧长度的列,并且最近日期的值为 1。

谢谢您的帮助。

4

1 回答 1

0

尝试这个:

for f in glob.glob(r'/path/to/dir/*.csv'):
    df = pd.read_csv(f)
    df['Countdown'] = np.arange(len(df), 0, -1)
    # process df...
于 2017-12-27T20:00:41.190 回答