Как заполнить столбцы из списков / массивов в пустой Pandas фрейм данных только с именами столбцов - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть датафрейм с несколькими именами столбцов. Как и когда я получаю данные для каждого столбца, я должен создавать строки. У меня не все данные строки доступны в одном месте. Когда я получу данные для столбца в определенной строке, я заполню его

. В этом примере ниже я создал пустой кадр данных и пытаюсь заполнить определенный столбец набором ценности. Это не работает.

import pandas as pd
import numpy as np

col_names = ['ampere', 'freq', 'count']
dataf = pd.DataFrame(columns = col_names)
freq = np.arange(0.6,2.6,0.1).tolist()
#Add the list of frequencies to the frequency column
dataf['freq'].iloc[1:len(freq)] = freq

Я получаю ошибку:

ValueError: невозможно скопировать последовательность с размером 20 на ось массива с размером 0

1 Ответ

0 голосов
/ 17 апреля 2020

Ты почти у цели! Нет необходимости в iloc -индексировании.

Так что просто измените вашу последнюю строку на

dataf['freq'] = freq

, и она должна работать как положено.

Если вы хотите чтобы продолжать добавлять больше строк из разных списков, как вы упомянули в комментарии, вы можете использовать следующий фрагмент кода:

import pandas as pd
import numpy as np

col_names = ['ampere', 'freq', 'count']
dataf = pd.DataFrame(columns = col_names)
freq = np.arange(0.6,2.6,0.1).tolist()
#Add the list of frequencies to the frequency column
dataf['freq'] = freq

freq2 = np.arange(7,70,1).tolist()

for i, value in enumerate(freq2, len(dataf)):
    dataf.loc[i] = [np.nan, value, np.nan]

Надеюсь, это поможет решить вашу проблему.

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