У меня есть вывод кадра данных, который выглядит следующим образом:
Index Region Date
0 W S CENTRAL Sep 2018
1 388
0 MOUNTAIN Sep 2018
1 229
0 PACIFIC Sep 2018
1 145
Я хотел бы поместить каждую итерацию числового значения под каждого региона, то есть: 388 в поле Регион, и поместитьэто в новом столбце рядом со столбцом Region с именем Total.
Данные начинаются в формате .txt и считываются в сценарий в виде списка в списке, например:
[[W S CENTRAL, 388], [MOUNTAIN, 229], [PACIFIC, 145]]
Я бы хотел, чтобы мой вывод был:
Region Total Date
WS CENTRAL 388 Sep 2018
MOUNTAIN 229 Sep 2018
PACIFIC 145 Sep 2018
Итак, я могу сгруппировать () дату для каждого региона.
Код для разбора списков в кадре данныхis:
def join_words(n):
frames = list()
for listy in n:
grouper = groupby(listy, key=str.isalpha)
joins = [[' '.join(v)] if alpha_flag else list(v) for alpha_flag, v in grouper]
res = list(chain.from_iterable(joins))
df = pd.DataFrame(res, columns = ['Region'])
df['Date'] = os.path.split(file)[-1]
frames.append(df)
new_df = pd.concat(frames)
return new_df
Проблема возникает при замене переменной res на фрейм данных;as res печатает как список версий того, что я хочу в качестве вывода.Переменные grouper и joins используются для прохождения строк рядом друг с другом и объединения их в одну строку (для целей названия страны).