#python #pandas
#python #панды
Вопрос:
У меня есть целое число n=3
Я должен создать квадратную матрицу с нижеприведенным условием when matrix[row]=matrix[column] then 1 else 0
Мой план состоит в том, чтобы создать таблицу, изначально вставить n
количество строк со всеми нулями и написать обновление с приведенным выше оператором case в pandas sql.
Может кто-нибудь, пожалуйста, помочь в этом случае, чтобы изначально создать фрейм данных со n
строками и n
столбцами динамически?
Спасибо.
Ответ №1:
Вы можете сделать что-то подобное, используя numpy
и pandas
:
import numpy as np
import pandas as pd
def create_diagonal_matrix_of_size(n):
if n > 0:
d = np.diag(n * [1])
df = pd.DataFrame(d)
return df
else:
return pd.DataFrame()
print(create_diagonal_matrix_of_size(3))
Комментарии:
1. Спасибо, я хочу использовать только концепции Pandas и SQL, если это возможно, спасибо за ваш ответ и быстрый ответ.
2. Pandas использует numpy. Итак, если вы используете Pandas, у вас уже есть доступ к numpy.
3. Прошу прощения за глупый вопрос, если я сделаю это ниже: для i в диапазоне (0,n,1): … a.append(n) для i в диапазоне (0,len(a),1): c.append([a]) Могу ли я создатьфрейм данных выше и напишите обновление sql …. вероятно, с помощью Spark sql… Я просто интересуюсь пространством временной сложности…..