Конкатенировать большой фрейм данных из выходных данных цикла для Python - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь построить большой набор данных из нарезанного результата для каждого вывода цикла.

Код, который я сделал, выглядит следующим образом:

for n in range(4): 
    script_dir = os.path.dirname(directory)
    rel_path = files[n]
    abs_file_path = os.path.join(script_dir, rel_path)
    to_open = pd.read_csv(abs_file_path, header=0)
    to_open["Geographic Address"] = to_open["Geographic Address"].astype(str)
    to_open["Geographic Address"] = to_open["Geographic Address"].map(lambda x: x[3:-1])
    to_open = to_open[to_open["Geographic Address"] == ld_up[n]]
    to_open.index = range(len(to_open))
    ind = np.searchsorted(to_open["Time"], time[n])
    ind = np.asscalar(np.array(ind))
    UpperBound = ind - 30
    data = to_open.iloc[UpperBound:ind,:]

Так что, как вы можете видеть, из столбца данных, если я нарежу выход, только вывод из случая 3 показан, Я хотел бы иметь большой файл, в то время как включает в себя дела 0, 1, 2, 3.

1 Ответ

0 голосов
/ 11 декабря 2018

Похоже, вы пытаетесь сложить эти разные случаи, и в этом случае вам нужно добавить их в список, а затем объединить список

df_list = []
for n in range(4): 
    script_dir = os.path.dirname(directory)
    rel_path = files[n]
    abs_file_path = os.path.join(script_dir, rel_path)
    to_open = pd.read_csv(abs_file_path, header=0)
    to_open["Geographic Address"] = to_open["Geographic Address"].astype(str)
    to_open["Geographic Address"] = to_open["Geographic Address"].map(lambda x: x[3:-1])
    to_open = to_open[to_open["Geographic Address"] == ld_up[n]]
    to_open.index = range(len(to_open))
    ind = np.searchsorted(to_open["Time"], time[n])
    ind = np.asscalar(np.array(ind))
    UpperBound = ind - 30
    data = to_open.iloc[UpperBound:ind,:]
    df_list.append(data)

df = pd.concat(df_list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...