Можно ли разделить столбец из определенного элемента в списке? - PullRequest
0 голосов
/ 22 ноября 2018

Я попытался преобразовать фрейм данных в список следующим образом.

вот фрейм данных до преобразования.

df_gr = df_com.groupby(['Publication_Year_x', 'UPC', 'CPC']).size().unstack(fill_value=0)
df_gr_peryear = df_gr.replace(0, '', regex=True)

df_gr_peryear

the data frame

и вот список, который я пробовал с этим кодом

list_allyear = [(list(i), v) for i, v in df_gr_peryear.stack().iteritems()]
list_allyear = pd.DataFrame(list_allyear, columns=["MOC", "count"])
list_allyear

вот результат

enter image description here

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

year  MOC         count
1971 [136,-]
1971 [136, A01D] 
.
.
1972 [231, H01L]    5

Я пробовал pd.DataFrame(list_allyear.MOC.values.tolist()), но он разбивает все элементы, которые содержатся в строках

1 Ответ

0 голосов
/ 22 ноября 2018

Просто упростил ваш код, где вы можете использовать fill_value='' вместо replace, а затем создать словари для понимания списка, чтобы иметь окончательный DataFrame:

cols = ['Publication_Year_x', 'UPC', 'CPC']
s = df_com.groupby(cols).size().unstack(fill_value='').stack()

L = [{'year': idx[0], 'MOC': list(idx[1:]), 'count': vals} for idx, vals in s.items()]
list_allyear = pd.DataFrame(L)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...