Я хочу закодировать скрипт, который принимает значения из столбца, разделяет их на строки и создает новый столбец для каждой из полученных строк (заполняется NaN прямо сейчас). Как ФР groupedby
Column1, я хочу сделать это для каждой группыКак добавить новые столбцы в объект pandas groupby из списка значений
Мой входной кадр данных выглядит следующим образом:
df1:
Column1 Column2
0 L17 a,b,c,d,e
1 L7 a,b,c
2 L6 a,b,f
3 L6 h,d,e
То, что я, наконец, хочу иметь это:
Column1 Column2 a b c d e f h
0 L17 a,b,c,d,e nan nan nan nan nan nan nan
1 L7 a,b,c nan nan nan nan nan nan nan
2 L6 a,b,f nan nan nan nan nan nan nan
Мои код в настоящее время выглядит так:
def NewCols(x):
for item, frame in group['Column2'].iteritems():
Genes = frame.split(',')
for value in Genes:
string = value
x[string] = np.nan
return x
df1.groupby('Column1').apply(NewCols)
Моя мысль о том, что код зацикливается грубая колонка 2 каждого сгруппированного объекта, разделяя значения, содержащиеся в frame
, на запятую и создавая список для этой группы. Пока код работает нормально. Затем я добавил
for value in Genes:
string = value
x[string] = np.nan
return x
с целью добавления нового столбца для каждого значения, содержащегося в списке Genes
. Однако мой вывод выглядит следующим образом:
Column1 Column2 d
0 L17 a,b,c,d,e nan
1 L7 a,b,c nan
2 L6 a,b,f nan
3 L6 h,d,e nan
и я в значительной степени поражен немым. Может кто-нибудь объяснить, почему добавляется только один столбец (который даже не назван в честь первого значения в первом списке первой группы) и предлагает, как я мог бы улучшить свой код?
О, человек ... спасибо! : D –
Добро пожаловать :) – Mathiou