У меня есть датафрейм df, например:
A = [["John", "Sunday", 6], ["John", "Monday", 3], ["John", "Tuesday", 2], ["Mary", "Sunday", 6], ["Mary", "Monday", 4], ["Mary", "Tuesday", 7]]
df = pandas.DataFrame(A, columns=["names", "dates", "times"])
И я хочу изменить его так, чтобы вместо трех столбцов я мог создать матрицу, в которой первый столбец индексирует строки, второй столбец индексирует столбцы, а третий столбец становится значением матрицы, что-то вроде:
B = [["John", 6, 3, 2], ["Mary", 6, 4, 7]]
df2 = pandas.DataFrame(B, columns=["names", "Sunday", "Monday", "Tuesday"])
или даже лучше:
B = numpy.asarray(B)
B = pandas.DataFrame(B)
Как мне преобразовать A в B?
Я создал double for loop, но в моем случае df очень большой и занимает очень много времени. Есть ли лучший способ сделать это?
Это не просто изменение формы, поскольку A имеет 18 значений, а B имеет 8