Как добавить данные в DataFrame - PullRequest
0 голосов
/ 22 января 2019

Как подсчитать каждую группу в DataFrame, а затем добавить счетчики групп в итоговый DataFrame?

Я очень новичок в Python

Я установил пустой DataFrame

Counts_data=pd.DataFrame(columns=['filename','Green','Stubble','Baresoil','Stones','Shadow'])

Затем я запускаю цикл For для изображений Внутри цикла я создаю DataFrame из групп RGB. (Результаты, предсказанные по пикселям RGB моделью knn)

df_img_pred=pd.DataFrame(knn.predict(df_img_data),columns=['RGBgroup'])
print(df_img_pred.head())
Img_counts=df_img_pred.stack().value_counts()

Выход

 RGBgroup
0  BareSoil
1   Stubble
2   Stubble
3   Stubble
4  BareSoil
BareSoil    56507
Stubble     52751
Shadow       5030
Stones       4267
Green         245
dtype: int64

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

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вы можете создать фрейм данных за один раз:

# list append is much more efficient
# than operating a dataframe
s = []
for row in stat_df:
    s.append(row)

# create a dataframe
labels = ['file1', 'file2', 'file3']
df = pd.DataFrame(s, columns=labels)

Вы можете заменить stat_df на свой прогноз df ​​и соответственно создать метки.

0 голосов
/ 22 января 2019

Вы должны создать список, добавляя к нему каждый новый вывод, а когда закончите, преобразуйте список в DataFrame. Выращивание DataFrame является очень дорогостоящей операцией.

Если все, что вам нужно, это простой подсчет, рассмотрите возможность использования Counter из collections модуля.

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