Skip to content

Utilizando o Pandas para trabalhar com Linguagem SQL

Aplicando Linguagem SQL na sintaxe do Pandas com Linguagem Python

Criando a conexão com o banco de dados

python
# Conectando no banco de dados
con = sqlite3.connect('cap12_dsa.db')


Abrindo um cursor

python
# Abre um cursor para percorrer os dados no banco de dados
cursor = con.cursor()

A query abaixo retorna todas as linhas e todas as colunas da tabela

Criando a instrução SQL

python
# Cria uma instrução SQL
query = 'SELECT * FROM tb_vendas_dsa'


Executando a instrução

python
# Executa a query no banco de dados
cursor.execute(query)

out:
<sqlite3.Cursor at 0x7f4679b00030>



Armazenando o resultado do cursor em uma variável

python
# Armazenando os dados do fetch em uma variável
dados = cursor.fetchall()


Visualizando os dados armazenados na variável

python
# Visualizando os dados
print(dados)
out:
[(1, 63, 'Produto_38', 154.03, 7, 92.42), (2, 49, 'Produto_8', 171.52, 5, 102.91), (3, 83, 'Produto_39', 28.97, 13, 17.38), (4, 37, 'Produto_2', 104.55, 4, 62.73), (5, 19, 'Produto_1', 77.21, 19, 46.33), (6, 87, 'Produto_36', 161.97, 13, 97.18), (7, 59, 'Produto_24', 101.17, 7, 60.7), (8, 48, 'Produto_31', 92.03, 9, 55.22), (9, 73, 'Produto_4', 116.57, 6, 69.94), (10, 98, 'Produto_45', 46.16, 4, 27.7), (11, 86, 'Produto_30', 135.55, 12, 81.33), (12, 89, 'Produto_45', 119.4, 11, 71.64), (13, 96, 'Produto_11', 96.63, 13, 57.98), (14, 29, 'Produto_50', 191.3, 10, 114.78), (15, 63, 'Produto_21', 191.28, 14, 114.77), (16, 30, 'Produto_22', 67.58, 17, 40.55), (17, 5, 'Produto_41', 33.22, 2, 19.93), (18, 97, 'Produto_33', 67.77, 12, 40.66), (19, 19, 'Produto_18', 160.68, 15, 96.41), (20, 7, 'Produto_17', 34.37, 13, 20.62), (21, 79, 'Produto_1', 161.33, 15, 96.8), (22, 36, 'Produto_45', 184.7, 11, 110.82), (23, 94, 'Produto_21', 11.57, 1, 6.94), (24, 51, 'Produto_16', 103.49, 4, 62.09), (25, 37, 'Produto_32', 29.49, 17, 17.69), (26, 78, 'Produto_5', 86.93, 6, 52.16), (27, 78, 'Produto_24', 118.14, 1, 70.88), (28, 87, 'Produto_6', 38.12, 4, 22.87), (29, 88, 'Produto_7', 145.76, 13, 87.46), (30, 31, 'Produto_1', 85.55, 19, 51.33), (31, 2, 'Produto_37', 43.93, 11, 26.36), (32, 80, 'Produto_34', 167.69, 1, 100.61), (33, 76, 'Produto_2', 36.25, 13, 21.75), (34, 89, 'Produto_6', 163.48, 9, 98.09), (35, 61, 'Produto_34', 26.27, 17, 15.76), (36, 20, 'Produto_24', 171.27, 9, 102.76), (37, 64, 'Produto_32', 194.29, 6, 116.57), (38, 12, 'Produto_45', 137.65, 15, 82.59), (39, 45, 'Produto_14', 150.07, 10, 90.04), (40, 32, 'Produto_32', 169.94, 19, 101.96), (41, 55, 'Produto_25', 32.62, 14, 19.57), (42, 37, 'Produto_1', 109.69, 1, 65.81), (43, 72, 'Produto_39', 199.78, 16, 119.87), (44, 76, 'Produto_50', 164.47, 17, 98.68), (45, 88, 'Produto_11', 68.66, 16, 41.2), (46, 50, 'Produto_8', 25.03, 13, 15.02), (47, 23, 'Produto_25', 123.85, 20, 74.31), (48, 91, 'Produto_28', 26.14, 6, 15.68), (49, 9, 'Produto_31', 46.27, 3, 27.76), (50, 18, 'Produto_6', 155.63, 12, 93.38), (51, 80, 'Produto_7', 56.15, 11, 33.69), (52, 59, 'Produto_13', 124.63, 6, 74.78), (53, 88, 'Produto_22', 92.03, 4, 55.22), (54, 62, 'Produto_50', 154.84, 5, 92.9), (55, 39, 'Produto_27', 10.31, 5, 6.19), (56, 90, 'Produto_16', 30.1, 5, 18.06), (57, 19, 'Produto_18', 170.95, 20, 102.57), (58, 75, 'Produto_16', 104.94, 8, 62.96), (59, 4, 'Produto_49', 119.61, 17, 71.77), (60, 24, 'Produto_5', 102.72, 11, 61.63), (61, 36, 'Produto_48', 84.9, 19, 50.94), (62, 85, 'Produto_28', 51.01, 3, 30.61), (63, 9, 'Produto_8', 31.4, 3, 18.84), (64, 34, 'Produto_49', 37.23, 9, 22.34), (65, 54, 'Produto_32', 60.6, 2, 36.36), (66, 23, 'Produto_20', 194.8, 8, 116.88), (67, 14, 'Produto_42', 90.96, 18, 54.58), (68, 44, 'Produto_10', 191.3, 10, 114.78), (69, 85, 'Produto_43', 24.79, 12, 14.87), (70, 49, 'Produto_15', 47.9, 11, 28.74), (71, 78, 'Produto_28', 45.76, 8, 27.46), (72, 30, 'Produto_30', 91.74, 4, 55.04), (73, 56, 'Produto_34', 142.24, 6, 85.34), (74, 6, 'Produto_5', 125.28, 13, 75.17), (75, 36, 'Produto_20', 36.46, 1, 21.88), (76, 43, 'Produto_26', 98.92, 12, 59.35), (77, 37, 'Produto_11', 116.83, 20, 70.1), (78, 24, 'Produto_50', 25.82, 10, 15.49), (79, 98, 'Produto_36', 138.52, 17, 83.11), (80, 3, 'Produto_25', 198.07, 6, 118.84), (81, 96, 'Produto_23', 15.36, 11, 9.22), (82, 52, 'Produto_44', 55.17, 8, 33.1), (83, 50, 'Produto_4', 62.59, 17, 37.55), (84, 45, 'Produto_17', 199.62, 14, 119.77), (85, 69, 'Produto_22', 66.9, 20, 40.14), (86, 20, 'Produto_45', 152.84, 7, 91.7), (87, 91, 'Produto_28', 47.58, 11, 28.55), (88, 21, 'Produto_47', 146.07, 18, 87.64), (89, 66, 'Produto_43', 37.75, 5, 22.65), (90, 86, 'Produto_35', 72.53, 2, 43.52), (91, 20, 'Produto_3', 164.55, 20, 98.73), (92, 2, 'Produto_22', 86.69, 11, 52.01), (93, 67, 'Produto_41', 72.9, 14, 43.74), (94, 4, 'Produto_16', 38.61, 13, 23.17), (95, 89, 'Produto_29', 110.76, 12, 66.46), (96, 57, 'Produto_46', 190.45, 10, 114.27), (97, 60, 'Produto_4', 180.91, 16, 108.55), (98, 92, 'Produto_9', 64.0, 17, 38.4), (99, 59, 'Produto_6', 73.64, 16, 44.18), (100, 5, 'Produto_18', 33.03, 20, 19.82), (101, 59, 'Produto_27', 169.36, 13, 101.62), (102, 87, 'Produto_49', 163.09, 11, 97.85), (103, 14, 'Produto_17', 63.25, 17, 37.95), (104, 21, 'Produto_17', 17.27, 5, 10.36), (105, 20, 'Produto_2', 12.68, 4, 7.61), (106, 60, 'Produto_3', 90.23, 20, 54.14), (107, 25, 'Produto_14', 38.42, 3, 23.05), (108, 85, 'Produto_47', 71.75, 18, 43.05), (109, 14, 'Produto_37', 197.77, 14, 118.66), (110, 47, 'Produto_8', 36.92, 11, 22.15), (111, 61, 'Produto_25', 21.03, 7, 12.62), (112, 31, 'Produto_24', 149.85, 18, 89.91), (113, 70, 'Produto_24', 81.9, 15, 49.14), (114, 27, 'Produto_20', 163.77, 5, 98.26), (115, 94, 'Produto_31', 143.05, 5, 85.83), (116, 67, 'Produto_6', 191.16, 2, 114.7), (117, 99, 'Produto_31', 194.36, 13, 116.62), (118, 76, 'Produto_46', 151.54, 19, 90.92), (119, 1, 'Produto_15', 13.12, 7, 7.87), (120, 54, 'Produto_24', 139.93, 18, 83.96), (121, 28, 'Produto_34', 57.6, 18, 34.56), (122, 13, 'Produto_19', 46.08, 6, 27.65), (123, 84, 'Produto_12', 197.18, 15, 118.31), (124, 67, 'Produto_20', 173.43, 4, 104.06), (125, 57, 'Produto_19', 32.09, 8, 19.25), (126, 78, 'Produto_7', 25.64, 12, 15.38), (127, 12, 'Produto_43', 36.3, 4, 21.78), (128, 63, 'Produto_4', 186.5, 5, 111.9), (129, 46, 'Produto_38', 36.09, 4, 21.65), (130, 71, 'Produto_23', 136.71, 19, 82.03), (131, 87, 'Produto_32', 98.13, 14, 58.88), (132, 20, 'Produto_2', 81.85, 13, 49.11), (133, 87, 'Produto_27', 96.42, 8, 57.85), (134, 59, 'Produto_19', 18.39, 4, 11.03), (135, 64, 'Produto_42', 172.8, 15, 103.68), (136, 98, 'Produto_30', 75.19, 1, 45.11), (137, 26, 'Produto_18', 147.01, 1, 88.21), (138, 57, 'Produto_12', 128.0, 17, 76.8), (139, 14, 'Produto_42', 151.81, 5, 91.09), (140, 50, 'Produto_10', 131.38, 13, 78.83), (141, 37, 'Produto_23', 59.52, 16, 35.71), (142, 10, 'Produto_46', 111.6, 19, 66.96), (143, 46, 'Produto_1', 31.64, 7, 18.98), (144, 44, 'Produto_18', 148.22, 15, 88.93), (145, 3, 'Produto_1', 92.3, 6, 55.38), (146, 47, 'Produto_33', 102.3, 13, 61.38), (147, 18, 'Produto_47', 133.77, 3, 80.26), (148, 81, 'Produto_26', 91.64, 20, 54.98), (149, 45, 'Produto_33', 52.55, 20, 31.53), (150, 57, 'Produto_1', 135.48, 1, 81.29), (151, 52, 'Produto_28', 15.77, 15, 9.46), (152, 74, 'Produto_41', 128.05, 18, 76.83), (153, 74, 'Produto_8', 106.01, 6, 63.61), (154, 15, 'Produto_26', 158.71, 16, 95.23), (155, 22, 'Produto_31', 64.36, 10, 38.62), (156, 52, 'Produto_19', 89.42, 8, 53.65), (157, 22, 'Produto_15', 199.24, 8, 119.54), (158, 97, 'Produto_3', 23.01, 6, 13.81), (159, 38, 'Produto_39', 39.84, 16, 23.9), (160, 32, 'Produto_15', 37.74, 19, 22.64), (161, 79, 'Produto_44', 155.45, 12, 93.27), (162, 56, 'Produto_8', 33.42, 15, 20.05), (163, 45, 'Produto_18', 151.89, 12, 91.13), (164, 65, 'Produto_11', 105.63, 19, 63.38), (165, 41, 'Produto_30', 17.76, 10, 10.66), (166, 7, 'Produto_8', 100.81, 19, 60.49), (167, 35, 'Produto_42', 28.34, 7, 17.0), (168, 24, 'Produto_34', 37.89, 17, 22.73), (169, 41, 'Produto_29', 27.34, 12, 16.4), (170, 84, 'Produto_13', 184.2, 5, 110.52), (171, 84, 'Produto_12', 24.93, 7, 14.96), (172, 47, 'Produto_4', 28.03, 12, 16.82), (173, 77, 'Produto_39', 188.52, 19, 113.11), (174, 58, 'Produto_8', 103.24, 17, 61.94), (175, 42, 'Produto_11', 88.9, 20, 53.34), (176, 38, 'Produto_31', 93.94, 2, 56.36), (177, 85, 'Produto_46', 21.13, 17, 12.68), (178, 13, 'Produto_7', 183.36, 8, 110.02), (179, 21, 'Produto_9', 166.11, 2, 99.67), (180, 9, 'Produto_32', 141.85, 18, 85.11), (181, 54, 'Produto_2', 163.44, 3, 98.06), (182, 96, 'Produto_26', 105.53, 15, 63.32), (183, 39, 'Produto_41', 136.76, 15, 82.06), (184, 68, 'Produto_10', 122.17, 19, 73.3), (185, 34, 'Produto_30', 139.21, 15, 83.53), (186, 76, 'Produto_48', 195.24, 14, 117.14), (187, 77, 'Produto_20', 117.97, 4, 70.78), (188, 96, 'Produto_21', 55.59, 8, 33.35), (189, 15, 'Produto_4', 57.91, 1, 34.75), (190, 67, 'Produto_11', 123.17, 19, 73.9), (191, 28, 'Produto_35', 33.25, 9, 19.95), (192, 69, 'Produto_21', 194.8, 12, 116.88), (193, 54, 'Produto_8', 185.3, 3, 111.18), (194, 57, 'Produto_23', 26.6, 1, 15.96), (195, 70, 'Produto_9', 72.53, 4, 43.52), (196, 74, 'Produto_42', 194.13, 12, 116.48), (197, 8, 'Produto_10', 178.27, 13, 106.96), (198, 15, 'Produto_14', 39.89, 9, 23.93), (199, 67, 'Produto_32', 27.57, 12, 16.54), (200, 10, 'Produto_3', 57.05, 6, 34.23), (201, 49, 'Produto_7', 196.13, 20, 117.68), (202, 69, 'Produto_28', 13.59, 18, 8.15), (203, 31, 'Produto_24', 179.2, 15, 107.52), (204, 11, 'Produto_15', 57.46, 6, 34.48), (205, 69, 'Produto_16', 135.56, 9, 81.34), (206, 53, 'Produto_25', 84.87, 18, 50.92), (207, 34, 'Produto_33', 176.65, 14, 105.99), (208, 67, 'Produto_40', 104.03, 11, 62.42), (209, 6, 'Produto_27', 57.23, 15, 34.34), (210, 53, 'Produto_16', 80.74, 2, 48.44), (211, 67, 'Produto_18', 135.98, 13, 81.59), (212, 49, 'Produto_32', 183.56, 12, 110.14), (213, 64, 'Produto_16', 10.76, 11, 6.46), (214, 95, 'Produto_49', 105.74, 19, 63.44), (215, 28, 'Produto_32', 143.99, 7, 86.39), (216, 12, 'Produto_50', 119.96, 15, 71.98), (217, 18, 'Produto_41', 98.14, 14, 58.88), (218, 93, 'Produto_34', 95.91, 2, 57.55), (219, 10, 'Produto_23', 170.09, 13, 102.05), (220, 66, 'Produto_1', 71.92, 15, 43.15), (221, 75, 'Produto_47', 20.84, 6, 12.5), (222, 10, 'Produto_6', 167.62, 17, 100.57), (223, 8, 'Produto_16', 76.0, 4, 45.6), (224, 77, 'Produto_33', 18.36, 10, 11.02), (225, 36, 'Produto_45', 15.91, 5, 9.55), (226, 34, 'Produto_7', 38.07, 4, 22.84), (227, 76, 'Produto_7', 146.11, 20, 87.67), (228, 74, 'Produto_16', 45.61, 4, 27.37), (229, 95, 'Produto_32', 36.61, 6, 21.97), (230, 100, 'Produto_26', 65.84, 3, 39.5), (231, 8, 'Produto_10', 30.18, 1, 18.11), (232, 2, 'Produto_15', 13.74, 3, 8.24), (233, 40, 'Produto_25', 156.4, 1, 93.84), (234, 74, 'Produto_39', 28.19, 9, 16.91), (235, 4, 'Produto_16', 86.21, 2, 51.73), (236, 27, 'Produto_20', 89.4, 14, 53.64), (237, 61, 'Produto_2', 43.56, 6, 26.14), (238, 54, 'Produto_3', 134.81, 7, 80.89), (239, 96, 'Produto_43', 194.33, 18, 116.6), (240, 62, 'Produto_31', 31.42, 3, 18.85), (241, 41, 'Produto_2', 131.85, 11, 79.11), (242, 10, 'Produto_8', 135.85, 20, 81.51), (243, 49, 'Produto_42', 134.6, 4, 80.76), (244, 5, 'Produto_5', 83.92, 5, 50.35), (245, 91, 'Produto_7', 178.77, 18, 107.26), (246, 21, 'Produto_24', 20.25, 12, 12.15), (247, 83, 'Produto_37', 198.96, 5, 119.38), (248, 77, 'Produto_28', 180.7, 7, 108.42), (249, 29, 'Produto_22', 106.38, 13, 63.83), (250, 36, 'Produto_25', 23.28, 10, 13.97), (251, 11, 'Produto_43', 146.55, 14, 87.93), (252, 34, 'Produto_7', 133.92, 18, 80.35), (253, 62, 'Produto_30', 72.61, 12, 43.57), (254, 46, 'Produto_11', 199.05, 1, 119.43), (255, 67, 'Produto_38', 130.09, 18, 78.05), (256, 40, 'Produto_48', 143.96, 8, 86.38), (257, 97, 'Produto_47', 42.45, 8, 25.47), (258, 89, 'Produto_32', 163.93, 19, 98.36), (259, 73, 'Produto_42', 169.11, 5, 101.47), (260, 100, 'Produto_1', 171.46, 6, 102.88), (261, 30, 'Produto_19', 151.51, 18, 90.91), (262, 60, 'Produto_50', 187.45, 10, 112.47), (263, 72, 'Produto_36', 139.34, 1, 83.6), (264, 34, 'Produto_28', 92.44, 4, 55.46), (265, 97, 'Produto_9', 153.97, 5, 92.38), (266, 58, 'Produto_31', 84.84, 18, 50.9), (267, 70, 'Produto_6', 59.07, 14, 35.44), (268, 73, 'Produto_45', 72.7, 1, 43.62), (269, 84, 'Produto_12', 91.54, 8, 54.92), (270, 81, 'Produto_39', 137.27, 8, 82.36), (271, 13, 'Produto_15', 91.25, 13, 54.75), (272, 17, 'Produto_44', 39.07, 5, 23.44), (273, 64, 'Produto_29', 198.8, 14, 119.28), (274, 70, 'Produto_13', 156.31, 2, 93.79), (275, 39, 'Produto_12', 129.06, 5, 77.44), (276, 62, 'Produto_40', 92.07, 9, 55.24), (277, 47, 'Produto_6', 23.37, 16, 14.02), (278, 72, 'Produto_4', 172.24, 11, 103.34), (279, 80, 'Produto_37', 145.13, 15, 87.08), (280, 42, 'Produto_31', 177.5, 1, 106.5), (281, 97, 'Produto_15', 183.21, 13, 109.93), (282, 22, 'Produto_34', 42.6, 16, 25.56), (283, 76, 'Produto_7', 54.93, 7, 32.96), (284, 5, 'Produto_40', 138.96, 1, 83.38), (285, 51, 'Produto_47', 88.6, 20, 53.16), (286, 8, 'Produto_4', 58.4, 5, 35.04), (287, 17, 'Produto_49', 116.06, 4, 69.64), (288, 55, 'Produto_29', 192.91, 4, 115.75), (289, 91, 'Produto_21', 159.18, 17, 95.51), (290, 38, 'Produto_32', 60.74, 11, 36.44), (291, 65, 'Produto_4', 105.22, 18, 63.13), (292, 21, 'Produto_39', 144.53, 15, 86.72), (293, 1, 'Produto_50', 133.05, 6, 79.83), (294, 62, 'Produto_36', 18.69, 16, 11.21), (295, 5, 'Produto_9', 54.07, 12, 32.44), (296, 66, 'Produto_40', 100.63, 18, 60.38), (297, 42, 'Produto_38', 86.18, 18, 51.71), (298, 99, 'Produto_16', 36.91, 4, 22.15), (299, 22, 'Produto_15', 92.67, 1, 55.6), (300, 45, 'Produto_28', 170.35, 10, 102.21), (301, 86, 'Produto_19', 182.79, 15, 109.67), (302, 16, 'Produto_30', 128.32, 14, 76.99), (303, 18, 'Produto_2', 111.71, 20, 67.03), (304, 99, 'Produto_50', 160.25, 9, 96.15), (305, 29, 'Produto_12', 85.76, 10, 51.46), (306, 19, 'Produto_30', 78.09, 9, 46.85), (307, 98, 'Produto_6', 150.28, 14, 90.17), (308, 50, 'Produto_30', 145.46, 10, 87.28), (309, 82, 'Produto_36', 141.76, 2, 85.06), (310, 28, 'Produto_15', 46.93, 14, 28.16), (311, 84, 'Produto_37', 106.29, 8, 63.77), (312, 56, 'Produto_24', 168.72, 14, 101.23), (313, 92, 'Produto_6', 36.89, 13, 22.13), (314, 20, 'Produto_1', 169.55, 18, 101.73), (315, 43, 'Produto_40', 142.55, 4, 85.53), (316, 50, 'Produto_29', 144.62, 15, 86.77), (317, 100, 'Produto_9', 31.4, 6, 18.84), (318, 97, 'Produto_1', 60.35, 20, 36.21), (319, 84, 'Produto_49', 177.64, 14, 106.58), (320, 88, 'Produto_27', 133.11, 6, 79.87), (321, 27, 'Produto_11', 162.31, 15, 97.39), (322, 82, 'Produto_30', 179.53, 6, 107.72), (323, 60, 'Produto_38', 66.98, 11, 40.19), (324, 64, 'Produto_31', 198.14, 15, 118.88), (325, 33, 'Produto_38', 90.19, 4, 54.11), (326, 51, 'Produto_33', 187.18, 4, 112.31), (327, 90, 'Produto_23', 197.39, 20, 118.43), (328, 3, 'Produto_39', 94.29, 13, 56.57), (329, 8, 'Produto_21', 22.06, 9, 13.24), (330, 10, 'Produto_30', 85.67, 3, 51.4), (331, 41, 'Produto_9', 171.23, 2, 102.74), (332, 52, 'Produto_25', 46.42, 14, 27.85), (333, 34, 'Produto_39', 66.0, 13, 39.6), (334, 53, 'Produto_36', 155.8, 2, 93.48), (335, 4, 'Produto_27', 109.8, 5, 65.88), (336, 72, 'Produto_41', 115.82, 1, 69.49), (337, 86, 'Produto_29', 143.29, 12, 85.97), (338, 63, 'Produto_13', 68.34, 12, 41.0), (339, 96, 'Produto_8', 20.54, 4, 12.32), (340, 86, 'Produto_20', 19.92, 6, 11.95), (341, 61, 'Produto_27', 150.62, 19, 90.37), (342, 23, 'Produto_40', 170.5, 2, 102.3), (343, 30, 'Produto_14', 142.28, 11, 85.37), (344, 15, 'Produto_30', 48.98, 11, 29.39), (345, 64, 'Produto_35', 89.72, 6, 53.83), (346, 56, 'Produto_9', 72.42, 5, 43.45), (347, 86, 'Produto_22', 175.04, 16, 105.02), (348, 25, 'Produto_22', 119.63, 20, 71.78), (349, 17, 'Produto_8', 63.6, 17, 38.16), (350, 61, 'Produto_16', 90.42, 1, 54.25), (351, 72, 'Produto_13', 20.88, 5, 12.53), (352, 28, 'Produto_12', 66.24, 6, 39.74), (353, 3, 'Produto_7', 47.0, 13, 28.2), (354, 97, 'Produto_26', 21.68, 4, 13.01), (355, 87, 'Produto_18', 166.68, 4, 100.01), (356, 26, 'Produto_7', 193.51, 17, 116.11), (357, 99, 'Produto_12', 112.02, 1, 67.21), (358, 82, 'Produto_17', 113.71, 12, 68.23), (359, 70, 'Produto_15', 65.39, 17, 39.23), (360, 74, 'Produto_27', 55.59, 18, 33.35), (361, 36, 'Produto_16', 84.18, 17, 50.51), (362, 39, 'Produto_38', 178.92, 8, 107.35), (363, 20, 'Produto_36', 136.61, 4, 81.97), (364, 41, 'Produto_22', 148.69, 20, 89.21), (365, 10, 'Produto_23', 11.65, 1, 6.99), (366, 60, 'Produto_8', 142.23, 16, 85.34), (367, 9, 'Produto_36', 184.02, 17, 110.41), (368, 21, 'Produto_3', 170.4, 4, 102.24), (369, 70, 'Produto_1', 88.27, 10, 52.96), (370, 1, 'Produto_10', 99.81, 12, 59.89), (371, 86, 'Produto_22', 122.09, 6, 73.25), (372, 32, 'Produto_22', 33.57, 18, 20.14), (373, 77, 'Produto_46', 159.33, 3, 95.6), (374, 36, 'Produto_25', 144.74, 8, 86.84), (375, 35, 'Produto_16', 74.49, 16, 44.69), (376, 4, 'Produto_3', 64.11, 8, 38.47), (377, 82, 'Produto_34', 112.96, 2, 67.78), (378, 20, 'Produto_16', 167.92, 13, 100.75), (379, 99, 'Produto_12', 21.49, 3, 12.89), (380, 94, 'Produto_36', 119.95, 4, 71.97), (381, 8, 'Produto_42', 182.49, 9, 109.49), (382, 61, 'Produto_7', 38.8, 20, 23.28), (383, 29, 'Produto_19', 198.77, 3, 119.26), (384, 25, 'Produto_19', 165.93, 13, 99.56), (385, 35, 'Produto_23', 138.9, 2, 83.34), (386, 23, 'Produto_26', 80.81, 1, 48.49), (387, 54, 'Produto_25', 25.68, 7, 15.41), (388, 93, 'Produto_14', 72.82, 20, 43.69), (389, 53, 'Produto_50', 175.41, 2, 105.25), (390, 94, 'Produto_42', 141.78, 11, 85.07), (391, 33, 'Produto_30', 161.44, 14, 96.86), (392, 56, 'Produto_3', 14.38, 8, 8.63), (393, 67, 'Produto_7', 74.3, 17, 44.58), (394, 50, 'Produto_26', 63.7, 13, 38.22), (395, 7, 'Produto_36', 162.04, 4, 97.22), (396, 61, 'Produto_38', 127.95, 19, 76.77), (397, 96, 'Produto_27', 52.5, 8, 31.5), (398, 27, 'Produto_9', 35.08, 11, 21.05), (399, 100, 'Produto_22', 162.06, 18, 97.24), (400, 31, 'Produto_16', 86.64, 19, 51.98), (401, 50, 'Produto_23', 52.41, 11, 31.45), (402, 65, 'Produto_20', 199.1, 7, 119.46), (403, 86, 'Produto_19', 174.39, 9, 104.63), (404, 85, 'Produto_41', 39.97, 19, 23.98), (405, 43, 'Produto_45', 71.63, 17, 42.98), (406, 89, 'Produto_22', 69.84, 16, 41.9), (407, 87, 'Produto_12', 29.86, 11, 17.92), (408, 47, 'Produto_10', 11.92, 16, 7.15), (409, 10, 'Produto_22', 194.26, 13, 116.56), (410, 17, 'Produto_4', 149.57, 4, 89.74), (411, 94, 'Produto_1', 121.02, 10, 72.61), (412, 30, 'Produto_14', 26.83, 2, 16.1), (413, 98, 'Produto_32', 10.03, 12, 6.02), (414, 67, 'Produto_29', 177.0, 6, 106.2), (415, 24, 'Produto_15', 104.37, 5, 62.62), (416, 54, 'Produto_29', 89.13, 17, 53.48), (417, 19, 'Produto_49', 68.44, 10, 41.06), (418, 68, 'Produto_25', 112.45, 2, 67.47), (419, 30, 'Produto_29', 58.53, 12, 35.12), (420, 61, 'Produto_36', 102.1, 20, 61.26), (421, 27, 'Produto_42', 83.37, 7, 50.02), (422, 8, 'Produto_18', 141.13, 15, 84.68), (423, 84, 'Produto_9', 13.04, 8, 7.82), (424, 100, 'Produto_24', 83.31, 18, 49.99), (425, 18, 'Produto_10', 15.95, 2, 9.57), (426, 3, 'Produto_34', 15.58, 1, 9.35), (427, 9, 'Produto_25', 61.58, 14, 36.95), (428, 61, 'Produto_10', 45.74, 4, 27.44), (429, 39, 'Produto_20', 48.31, 19, 28.99), (430, 99, 'Produto_46', 67.19, 3, 40.31), (431, 72, 'Produto_27', 134.35, 14, 80.61), (432, 83, 'Produto_44', 150.01, 3, 90.01), (433, 37, 'Produto_47', 177.32, 1, 106.39), (434, 87, 'Produto_3', 187.7, 1, 112.62), (435, 10, 'Produto_39', 107.65, 7, 64.59), (436, 43, 'Produto_43', 113.81, 13, 68.29), (437, 60, 'Produto_29', 98.56, 7, 59.14), (438, 85, 'Produto_50', 55.8, 16, 33.48), (439, 31, 'Produto_11', 148.32, 13, 88.99), (440, 59, 'Produto_22', 34.45, 12, 20.67), (441, 83, 'Produto_25', 168.0, 3, 100.8), (442, 91, 'Produto_42', 85.87, 20, 51.52), (443, 24, 'Produto_22', 63.03, 6, 37.82), (444, 20, 'Produto_6', 194.99, 15, 116.99), (445, 41, 'Produto_46', 52.96, 14, 31.78), (446, 10, 'Produto_4', 118.24, 15, 70.94), (447, 47, 'Produto_3', 111.78, 9, 67.07), (448, 72, 'Produto_24', 107.87, 8, 64.72), (449, 75, 'Produto_12', 181.36, 13, 108.82), (450, 91, 'Produto_11', 60.73, 8, 36.44), (451, 48, 'Produto_1', 18.44, 20, 11.06), (452, 12, 'Produto_28', 120.85, 8, 72.51), (453, 68, 'Produto_40', 167.29, 1, 100.37), (454, 60, 'Produto_30', 54.72, 12, 32.83), (455, 25, 'Produto_29', 110.63, 1, 66.38), (456, 22, 'Produto_12', 35.94, 18, 21.56), (457, 82, 'Produto_26', 134.73, 3, 80.84), (458, 98, 'Produto_4', 101.6, 17, 60.96), (459, 79, 'Produto_37', 95.52, 6, 57.31), (460, 93, 'Produto_40', 151.36, 12, 90.82), (461, 88, 'Produto_48', 154.02, 15, 92.41), (462, 54, 'Produto_17', 30.36, 7, 18.22), (463, 18, 'Produto_18', 40.89, 19, 24.53), (464, 7, 'Produto_4', 165.3, 18, 99.18), (465, 31, 'Produto_11', 16.06, 12, 9.64), (466, 50, 'Produto_37', 66.55, 20, 39.93), (467, 11, 'Produto_29', 186.75, 4, 112.05), (468, 57, 'Produto_30', 190.73, 5, 114.44), (469, 32, 'Produto_10', 40.43, 5, 24.26), (470, 56, 'Produto_49', 60.78, 11, 36.47), (471, 57, 'Produto_19', 147.38, 18, 88.43), (472, 79, 'Produto_23', 112.01, 19, 67.21), (473, 43, 'Produto_38', 154.74, 20, 92.84), (474, 76, 'Produto_19', 160.12, 5, 96.07), (475, 83, 'Produto_38', 92.49, 19, 55.49), (476, 84, 'Produto_3', 192.7, 9, 115.62), (477, 76, 'Produto_18', 19.22, 5, 11.53), (478, 97, 'Produto_44', 193.39, 8, 116.03), (479, 39, 'Produto_34', 162.33, 1, 97.4), (480, 98, 'Produto_22', 85.19, 9, 51.11), (481, 3, 'Produto_39', 33.03, 6, 19.82), (482, 33, 'Produto_33', 63.61, 13, 38.17), (483, 84, 'Produto_5', 170.45, 16, 102.27), (484, 9, 'Produto_30', 103.85, 20, 62.31), (485, 35, 'Produto_8', 198.35, 6, 119.01), (486, 16, 'Produto_7', 24.02, 16, 14.41), (487, 87, 'Produto_35', 47.53, 19, 28.52), (488, 75, 'Produto_29', 184.54, 10, 110.72), (489, 58, 'Produto_7', 62.24, 3, 37.34), (490, 70, 'Produto_26', 124.03, 7, 74.42), (491, 97, 'Produto_39', 150.94, 17, 90.56), (492, 82, 'Produto_18', 178.03, 18, 106.82), (493, 45, 'Produto_37', 157.59, 9, 94.55), (494, 65, 'Produto_17', 73.05, 14, 43.83), (495, 53, 'Produto_26', 97.69, 9, 58.61), (496, 27, 'Produto_12', 155.02, 1, 93.01), (497, 32, 'Produto_23', 71.04, 6, 42.62), (498, 80, 'Produto_1', 67.83, 13, 40.7), (499, 13, 'Produto_50', 187.89, 16, 112.73), (500, 46, 'Produto_21', 82.81, 11, 49.69)]


Visualizando o tipo da variável que armazenou o resultado do cursor

python
type(dados)
out:
list

O fetch nos retorna uma lista de tuplas!

Porém, sabemos que manipular uma lista de tuplas é mais complicado, temos que fazer mais filtros, mais trabalho de indexação, etc.

Então é pra isso que iremos usar o pandas!




Criando um Dataframe do Pandas a partir da variável dados

python
df = pd.DataFrame(dados, columns = ['ID_Pedido',
                                    'ID_Cliente',
                                    'Nome_Produto',
                                    'Valor_Unitario',
                                    'Unidades_Vendidas',
                                    'Custo'])


Visualizando os dados

python
df.head()

out:

ID_Pedido ID_Cliente Nome_Produto Valor_Unitario Unidades_Vendidas Custo
0 1 63 Produto_38 154.03 7 92.42
1 2 49 Produto_8 171.52 5 102.91
2 3 83 Produto_39 28.97 13 17.38
3 4 37 Produto_2 104.55 4 62.73
4 5 19 Produto_1 77.21 19 46.33

PRONTO! Agora temos um dataframe com os dados do banco de dados!

Já que temos um DF com os dados, não se faz mais necessário manter a conexão e o cursor aberto, podemos fechar o mesmo




Fechando o cursor e encerrando a conexão com o banco de dados

python
# Fecha o cursor e encerra a conexão

cursor.close()
con.close()
Já que temos o nosso Banco de Dados dentro de um DF do pandas, não se faz mais necessário manter a conexão com o BD e o cursor abertos!




A query abaixo retorna a média de unidades vendidas:

python
# Calcula a média de unidades vendidas
media_unidades_vendidas = df['Unidades_Vendidas'].mean()
print(media_unidades_vendidas)
out:
10.506




A query abaixo retorna a média de unidades vendidas por produto:

python
media_unidades_vendidas_por_produto = df.groupby('Nome_Produto')['Unidades_Vendidas'].mean()
# Interessante ressaltar,
# A coluna pela qual eu quero agrupar fica entre parênteses!
# E a coluna que eu quero calcular a média, vai entre colchetes!!!

print(media_unidades_vendidas_por_produto.head(10))

out:
    Nome_Produto
    Produto_1     12.000000
    Produto_10     9.500000
    Produto_11    14.181818
    Produto_12     8.846154
    Produto_13     6.000000
    Produto_14     9.166667
    Produto_15     9.750000
    Produto_16     8.250000
    Produto_17    11.714286
    Produto_18    13.083333
    Name: Unidades_Vendidas, dtype: float64



A query abaixo retorna a média de unidades vendidas por produto se o valor unitário for maior que 199:

python
df[df['Valor_Unitario'] > 199].groupby('Nome_Produto')['Unidades_Vendidas'].mean()
out:
    Nome_Produto
    Produto_11     1.0
    Produto_15     8.0
    Produto_17    14.0
    Produto_20     7.0
    Produto_39    16.0
    Name: Unidades_Vendidas, dtype: float64

<br><br>
***


 >A query abaixo retorna a média de unidades vendidas por produto se o valor unitário for maior que 199 e somente se a média de unidades vendidas for maior do que 10:


```python title='python'

df[df['Valor_Unitario'] > 199].groupby('Nome_Produto') \
                              .filter(lambda x: x['Unidades_Vendidas'].mean() > 10) \
                              .groupby('Nome_Produto')['Unidades_Vendidas'].mean()

out:
    Nome_Produto
    Produto_17    14.0
    Produto_39    16.0
    Name: Unidades_Vendidas, dtype: float64