AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-5363686

Serge de Gosson de Varennes's questions

Martin Hope
Serge de Gosson de Varennes
Asked: 2024-02-20 21:52:16 +0800 CST

Caderno Jupter para tex para pdf sem conteúdo de célula

  • 5

Não tenho certeza se este é o fórum (tag) certo para esta pergunta, então peço desculpas se estiver errado. O problema que enfrento é o seguinte:

Estou criando um relatório que irei gerar para vários clientes. Nele tenho uma série de estatísticas sobre produtos, visualizações, tabelas etc. que são criadas usando conexões do BigQueryGCP e usando python. No melhor dos mundos, eu marcaria todas as células de computação e recuperação de dados com a tag at hide-input, usaria jupyter nbconvet e criaria um relatório em PDF. Infelizmente, isso não funciona devido a limitações no meu ambiente.

No entanto, posso converter meu notebook *.texe depois converter esse arquivo em arquivos PDF. Mas, neste caso, todas as células estão visíveis.

Alguém sabe como ocultar o conteúdo de um texarquivo durante a conversão para PDF?

python
  • 1 respostas
  • 31 Views
Martin Hope
Serge de Gosson de Varennes
Asked: 2024-02-06 01:27:54 +0800 CST

Função para agregar json

  • 5

Suponha que eu tenha um bucket gcs com arquivos json com a seguinte estrutura:

[
  {
    "Id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "Name": "alibaba",
    "storeid": "Y1",
    "storeName": "alibaba1",
    "a": "1/2/3",
    "b": "1.0/1.0/3",
    "c": "0/0/0",
    "d": "0/0/0",
    "e": "1.8/3.4",
    "f": "1/2/3",
    "g": "1/2/3",
  },
  {
    "Id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "Name": "alibaba",
    "storeUuid": "Y2",
     "storeName": "alibaba2",
    "a": "1/2/3",
    "b": "1.0/1.0/3",
    "c": "0/0/0",
    "d": "0/0/0",
    "e": "1.7/2.4",
    "f": "1/2/3",
    "g": "1/2/3",
  },
  {
    "Id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "Name": "alibaba",
    "storeUuid": "Y3",
     "storeName": "alibaba3",
    "a": "1/2/3",
    "b": "1.0/1.0/3",
    "c": "0/0/0",
    "d": "0/0/0",
    "e": "2.7/4.4",
    "f": "1/2/3",
    "g": "1/2/3",
  },
  {
    "Id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "Name": "alibaba",
    "storeUuid": "Y4",
     "storeName": "alibaba4",
    "a": "1/2/3",
    "b": "1.0/1.0/3",
    "c": "0/0/0",
    "d": "0/0/0",
    "e": "3.7/5.4",
    "f": "1/2/3",
    "g": "1/2/3",
  }
]

O que eu quero fazer é agregar os diferentes valores somando a, b,c, d, f,ge calculando a média epara retornar um único jsoncomo

[
{
    "Id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "Name": "alibaba",
    "a": "sum over all first instance/sum over all second instances/sum aover all third instance",
    "b": "sum over all first instance/sum over all second instances/sum aover all third instance",
    "c": "sum over all first instance/sum over all second instances/sum aover all third instance",
    "d": "sum over all first instance/sum over all second instances/sum aover all third instance",
    "e": "average over all first instance/average over all second instance",
    "f": "sum over all first instance/sum over all second instances/sum aover all third instance",
    "g": "sum over all first instance/sum over all second instances/sum aover all third instance",
  }
]

Não que algum dos valores em */*/*possa ser NaN e que os dados em epossam ser uma string data unvavailable.

Em criei esta função

def format_large_numbers_optimized(value):
    abs_values = np.abs(value)
    mask = abs_values >= 1e6
    formatted_values = np.where(mask, 
                                np.char.add(np.round(value / 1e6, 2).astype(str), "M"), 
                                np.round(value, 2).astype(str))
    return formatted_values

def process_json_data_optimized(json_list):
    result = {}
    keys = set(json_list[0].keys()) - {'Id', 'Name', 'storeid', 'storeName'}
    for key in keys:
        result[key] = {'values': []}
    for json_data in json_list:
        for key in keys:
            value = json_data.get(key, '0')  
            result[key]['values'].append(value)
    for key in keys:
        all_values_processed = []
        for value in result[key]['values']:
            if isinstance(value, str) and '/' in value:
                processed_values = [float(v) if v != 'data unavailable' else 0 for v in value.split('/')]
            elif isinstance(value, float) or isinstance(value, int):
                processed_values = [value]
            else:
                processed_values = [0.0]  
            all_values_processed.append(processed_values)
        numeric_values = np.array(all_values_processed)
        if numeric_values.ndim == 1:
            numeric_values = numeric_values[:, np.newaxis]
        summed_values = np.sum(numeric_values, axis=0)
        formatted_summed_values = '/'.join(format_large_numbers_optimized(summed_values))
        result[key]['summed'] = formatted_summed_values
    processed_result = {key: data['summed'] for key, data in result.items()}
    processed_result['Id'] = json_list[0]['Id']
    processed_result['Name'] = json_list[0]['Name']
    return processed_result

Mas isso não cria o que eu espero. Estou totalmente perdido. Eu realmente apreciaria qualquer ajuda.

python
  • 2 respostas
  • 43 Views
Martin Hope
Serge de Gosson de Varennes
Asked: 2023-12-05 21:01:54 +0800 CST

Calculando o número de eventos em colunas cumulativas por intervalo de tempo para vários IDs

  • 6

Suponha que eu tenha um dataframe como este

import pandas as pd

data = {
    'id1': [1]*12 + [1]*12 + [2]*12 + [2]*12,
    'id2': ['a']*12 + ['b']*12 + ['c']*12 + ['d']*12,
    'date': (['2023-11-20', '2023-11-21', '2023-11-22', '2023-11-23', '2023-11-24', '2023-11-25', '2023-11-26', '2023-11-27', '2023-11-28', '2023-11-29', '2023-11-30', '2023-12-01']*4)[:48],
    'event1': [10, 23, 36, 49, 62, 75, 88, 101, 114, 127, 140, 153, 12, 25, 38, 51, 64, 77, 90, 103, 116, 129, 142, 155, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 567, 785, 1003, 1221, 1439, 1657, 1875, 2093, 2311, 2529, 2747, 2965],
    'event2': ([0]*12 + [3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25] + [45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]*2)[:48]
}

df = pd.DataFrame(data)

print(df)

Como você pode ver, para cada um id2os valores de event1e event2são cumulativos. Ou seja, a diferença de valor entre duas datas consecutivas é a contagem de eventos na maior das duas datas.

Quero, para cada um id2, calcular o número de eventos no dia anterior (aqui 30/11/2023), o número total de eventos nos últimos três dias e o número total de eventos nos últimos 7 dias.

Eu tentei algo do tipo:

df.set_index('date', inplace=True)

target_date = pd.to_datetime('2023-11-30')

events_on_target_date = df.loc[target_date, 'event1'] - df.loc[target_date - pd.DateOffset(days=1), 'event1']
events_3_days_before = df.loc[target_date - pd.DateOffset(days=3):target_date, 'event1'].iloc[-1] - df.loc[target_date - pd.DateOffset(days=4), 'event1']
events_5_days_before = df.loc[target_date - pd.DateOffset(days=5):target_date, 'event1'].iloc[-1] - df.loc[target_date - pd.DateOffset(days=6), 'event1']

print(f"Number of events on {target_date}: {events_on_target_date}")
print(f"Total number of events in the 3 days before {target_date}: {events_3_days_before}")
print(f"Total number of events in the 5 days before {target_date}: {events_5_days_before}")

que funciona bem com um id1 e id2 isolados, mas tenho dificuldade com:

  • aplicando isso a cadaid2
  • aplicando isso para incluir os cálculos event1eevent2

O resultado desejado deve ser algo assim

id1 id2 count_event1_yesterday  count_event1_past3Days  count_event1_past5Days  count_event2_yesterday  count_event2_past3Days  count_event2_past5Days
1   a   13  39  52  0   0   0
1   b   13  39  52  4   6   8
2   c                       
2   d   
pandas
  • 2 respostas
  • 40 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve