Конкатенация строк в пандах - PullRequest
0 голосов
/ 01 июня 2018

Кажется, это должно быть намного проще, но я здесь.

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

TypeError: cannot concatenate object of type "<class 'numpy.float64'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid

Мой код

for i in range(0,len(k_means_labels_unique)):
    X = pd.DataFrame(columns=['first occurrence of \'AB\'','similarity to \'AB\''])
    y = pd.DataFrame(columns=['Class'])
    for row in result.iterrows():
        data=row[1]
        if data['cluster ID'] == i:
            X = pd.concat([X,data['first occurrence of \'AB\''],data['similarity to \'AB\'']])
            y = pd.concat([y,data['Class']])

Нужно ли преобразовывать data['first occurrence of \'AB\''],data['similarity to \'AB\''] в другой фрейм данных?Это кажется ужасно неэффективным*

1 Ответ

0 голосов
/ 01 июня 2018

Сначала необходимо преобразовать в фрейм данных:

X = pd.concat([X,pd.DataFrame([[data['first occurrence of \'AB\''],data['similarity to \'AB\'']]],columns=['first occurrence of \'AB\'','similarity to \'AB\''])], ignore_index=True)
y = pd.concat([y,pd.DataFrame([data['Class']], columns=['Class'])], ignore_index=True)

РЕДАКТИРОВАТЬ: добавить ignore_index = True

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