Имам таблица с 3 колони: parent_male, parent_female, offsprings - всички низове. Искам да се създаде проста рядка кръстосана таблица на мъжки срещу жени и поколения като стойности - как мога да напиша aggfunc, които правят това. (не е необходимо реално агрегиране) - просто сложете празен низ в празните места.
Отговори:
1 за отговор № 1IIUC, от което се нуждаете pivot
:
df = df.pivot(index="parent_male", columns="parent_female", values="offsprings")
Ако получите грешка:
ValueError: Индексът съдържа дублиращи се записи, които не могат да се променят отново
употреба pivot_table
Така окончателното решение е:
ct = pd.pivot_table(d["male"], d["female"], d["offsprings"], aggfunc=",".join)
0 за отговор № 2
Открих отговора тук ... Функцията Pandas Groupby Agg не намалява и аз използвах информацията. от горните коментари ...
ct = pd.crosstab(d["male"], d["female"], d["offsprings"], aggfunc=",".join)