Как сложить количество строк в одну строку и назначить идентификатор - PullRequest
1 голос
/ 19 июня 2019

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

Ответы [ 2 ]

1 голос
/ 19 июня 2019

это случай pivot:

# extract the raster name:
df['raster_name'] = df.raster.str.extract('(\d+_\d+\.tif)')

# pivot
new_df = df.pivot(index='raster_name', columns='band', values='mean')

# rename the columns:
new_df.columns = [f'band{i}_mean' for i in new_df.columns]

Вывод:

                     band1_mean   band2_mean   band3_mean   band4_mean
raster_name                                                           
20170219_095504.tif  894.343482  1159.282304  1342.291595  3056.809463
20170325_095551.tif  516.962407   720.193253   689.628788  4561.576329
20170527_095700.tif  566.201687   812.992710   760.462121  5009.537164

Вы можете reset_index на new_df, если хотите, чтобы raster_name былонормальный столбец.

1 голос
/ 19 июня 2019

С df.pivot("raster", "band", "mean") вы получите

band                          1            2            3            4
raster                                                                
20170219_095504.tif  894.343482  1159.282304  1342.291595  3056.809463
20170325_095551.tif  516.962407   720.193253   689.628788  4561.576329
20170527_095700.tif  566.201687   812.992710   760.462121  5009.537164
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...