Pandas Python добавляет строки на основе приведенного ниже условия

#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… Я просто интересуюсь пространством временной сложности…..