forked from CidClayQuirino/DeslocamentoTTT_TCZ
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanalise_visiolinkbrazaurorev21052024.py
499 lines (358 loc) · 20.5 KB
/
analise_visiolinkbrazaurorev21052024.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
# -*- coding: utf-8 -*-
"""Analise_VisioLinkBrazauroRev21052024.ipynb
Automatically generated by Colab.
Original file is located at
https://colab.research.google.com/drive/1Y_v-SRx1Tv5bc91NP7dq45G0CvvTez1A
"""
!pip install markdown
!pip install statsmodels
!pip install scikit-learn
!pip install PyGithub
!pip install gitpython
!pip install statsmodels
!pip install dash
!pip install xlwt
!pip install openpyxl
!pip install tensorflow
!pip install scipy
import requests
import pandas as pd
# URL do arquivo no repositório do GitHub
file_url = 'https://raw.githubusercontent.com/CidClayQuirino/ConditionMonitoring_RNN/main/faultCodesHistoryBrazauro.csv'
faultCodesHistoryBrazauro = pd.read_csv(file_url)
# Enviar solicitação GET para fazer o download do arquivo
response = requests.get(file_url)
# Verificar se a solicitação foi bem-sucedida
if response.status_code == 200:
# Salvar o conteúdo do arquivo em um arquivo local
with open('faultCodesHistoryBrazauro.csv', 'wb') as file:
file.write(response.content)
print("Download do arquivo concluído com sucesso!")
else:
print("Erro ao fazer download do arquivo:", response.text)
# Listar as colunas do DataFrame
colunas = faultCodesHistoryBrazauro.columns.tolist()
# Exibir as colunas
print(colunas)
DfFaultCodesHistoryBrazauro = faultCodesHistoryBrazauro.rename(columns={'Asset Serial Number': 'Serial Number', 'Make': 'Fabricante', 'Name': 'Numero Frota', 'Fault Code Cid': 'Cid', 'Fault Code Fmi': 'Fmi', 'Fault Code Eid': 'Eid', 'Fault Code Spn': 'Spn', 'Severity': 'Severity', 'Lifetime Energy Generated Value': 'Energy', 'Lifetime Fuel Consumed Value': 'Fuel_Consumed', 'Service Meter Unit.3': 'Service Meter Unit', 'Lifetime Fuel Consumed Timestamp': 'Fuel Consumed Timestamp', 'Fault Location': 'Location'})
import pandas as pd
dfFaultCode = DfFaultCodesHistoryBrazauro
# Listar as colunas do DataFrame
colunas = dfFaultCode.columns.tolist()
# Exibir as colunas
print(colunas)
print(dfFaultCode['Fault Date'].dtype)
dfFaultCode = dfFaultCode.rename(columns={'Fuel_Consumed': 'Fuel_Consumed usGal'})
import pandas as pd
dfFaultCode = DfFaultCodesHistoryBrazauro
# Converter a coluna 'Fault Date' para o tipo datetime
dfFaultCode['Fault Date'] = pd.to_datetime(dfFaultCode['Fault Date'].str.slice(0, 10))
dfFaultCode.head()
# Lista das colunas desejadas
colunas_desejadas = ['Serial Number', 'Model', 'Numero Frota', 'Fault Code', 'Severity', 'Fault Date', 'Fuel_Consumed', 'Hours Value', 'Odometer Value', 'Type', 'Occurrences']
# Manter apenas as colunas desejadas no DataFrame
dfFaultCode = dfFaultCode.loc[:, colunas_desejadas]
# Lista dos modelos a serem removidos
models_to_remove = ["313D", "966", "980", "C15", "CS54B"]
# Filtrar o DataFrame para manter apenas as linhas em que o modelo não está na lista de modelos a serem removidos
dfFaultCode = dfFaultCode[~dfFaultCode['Model'].isin(models_to_remove)]
dfFaultCode['Model'] = dfFaultCode['Model'].replace('777-05', '777E-05')
dfFaultCode['Model'] = dfFaultCode['Model'].replace('777E', '777E-05')
# Exibir o DataFrame atualizado
dfFaultCode.head()
import plotly.express as px
import pandas as pd
# Agrupar os dados por modelo e data da falha e calcular a soma das ocorrências
grouped = dfFaultCode.groupby(['Model', 'Fault Date']).agg({'Occurrences': 'sum'}).reset_index()
# Criar um gráfico de dispersão interativo para cada modelo
for model, data in grouped.groupby('Model'):
fig = px.scatter(data, x='Fault Date', y='Occurrences', title=f'Disposição das ocorrências ao longo do tempo para o modelo {model}',
labels={'Fault Date': 'Data da Falha', 'Occurrences': 'Total de Ocorrências'},
hover_data=['Occurrences'])
fig.show()
import plotly.express as px
# Filtrar o DataFrame para manter apenas as colunas desejadas e remover linhas com valores ausentes em 'Fault Date' e 'Occurrences'
df_filtered = dfFaultCode[['Fault Date', 'Model', 'Occurrences', 'Severity']].dropna(subset=['Fault Date', 'Occurrences'])
# Criar o gráfico de dispersão interativo
fig = px.scatter(df_filtered, x='Fault Date', y='Occurrences', color='Severity',
facet_col='Model', facet_col_wrap=3,
labels={'Fault Date': 'Data da Falha', 'Occurrences': 'Ocorrências', 'Severity': 'Severidade'},
title='Dispersão de Ocorrências de Falha por Tempo e Modelo com Indicação de Severidade',
color_continuous_scale=['green', 'yellow', 'red'],
render_mode='auto')
# Atualizar o layout para ajustar o tamanho dos subplots e adicionar títulos aos subplots
fig.update_layout(height=800, width=1000, showlegend=True, coloraxis_colorbar=dict(title='Severidade'))
# Exibir o gráfico
fig.show()
import plotly.express as px
# Filtrar o DataFrame para manter apenas as ocorrências com Severity igual a 3
df_filtered = dfFaultCode[dfFaultCode['Severity'] == 3]
# Drop linhas com valores ausentes em 'Fault Date' e 'Occurrences'
df_filtered = df_filtered.dropna(subset=['Fault Date', 'Occurrences'])
# Calcular a quantidade total de eventos
total_events = df_filtered['Occurrences'].sum()
# Criar o gráfico de dispersão interativo
fig = px.scatter(df_filtered, x='Fault Date', y='Occurrences', color_discrete_sequence=['red'],
facet_col='Model', facet_col_wrap=3,
labels={'Fault Date': 'Data da Falha', 'Occurrences': 'Ocorrências', 'Severity': 'Severidade'},
title=f'Dispersão de Ocorrências de Falha por Tempo e Modelo com Severidade 3\nTotal de Eventos: {total_events}')
# Atualizar o layout para ajustar o tamanho dos subplots e adicionar títulos aos subplots
fig.update_layout(height=800, width=1000, showlegend=False)
# Exibir o gráfico
fig.show()
import pandas as pd
# Filtrar o DataFrame para manter apenas as colunas necessárias
df_filtered = dfFaultCode[['Model', 'Severity', 'Occurrences']]
# Criar a tabela pivô
pivot_table = pd.pivot_table(df_filtered, values='Occurrences', index='Model', columns='Severity', aggfunc='sum', fill_value=0)
# Adicionar uma coluna com o total de ocorrências por modelo
pivot_table['Total'] = pivot_table.sum(axis=1)
# Adicionar colunas com a porcentagem de ocorrências por severidade
for severity in pivot_table.columns[:-1]: # Excluir a última coluna 'Total'
pivot_table[f'%_{severity}'] = (pivot_table[severity] / pivot_table['Total']) * 100
# Arredondar os valores das colunas de porcentagem
pivot_table['%_1'] = pivot_table['%_1'].round(1)
pivot_table['%_2'] = pivot_table['%_2'].round(1)
pivot_table['%_3'] = pivot_table['%_3'].round(1)
# Exibir a tabela
#print(pivot_table)
# Converter a tabela pivô em um DataFrame
dfResumo = pd.DataFrame(pivot_table)
# Exibir o DataFrame
print(dfResumo)
import plotly.graph_objects as go
# Supondo que dfResumo seja o DataFrame com as colunas %_1, %_2 e %_3
# Criando os dados para o gráfico
modelos = dfResumo.index.tolist() # Supondo que os modelos estejam no índice do DataFrame
percentuais_1 = dfResumo['%_1']
percentuais_2 = dfResumo['%_2']
percentuais_3 = dfResumo['%_3']
# Criando as barras com cores personalizadas
fig = go.Figure()
fig.add_trace(go.Bar(x=modelos, y=percentuais_1, text=percentuais_1, textposition='auto', name='%_1', marker_color='green'))
fig.add_trace(go.Bar(x=modelos, y=percentuais_2, text=percentuais_2, textposition='auto', name='%_2', marker_color='yellow'))
fig.add_trace(go.Bar(x=modelos, y=percentuais_3, text=percentuais_3, textposition='auto', name='%_3', marker_color='red'))
# Atualizando o layout do gráfico
fig.update_layout(
title='Percentuais por Modelo',
xaxis=dict(title='Modelo'),
yaxis=dict(title='Percentual'),
barmode='group'
)
# Exibindo o gráfico interativo
fig.show()
import pandas as pd
#dfFaultCode6030 = dfFaultCode[dfFaultCode['Model'] == "6030"]
dfFaultCode6030 = dfFaultCode[dfFaultCode['Model'] == "6030"]
dfFaultCode6030 = dfFaultCode6030[dfFaultCode6030['Severity'] > 2]
dfFaultCode6030.head()
import pandas as pd
# Suponha que dfFaultCode6030 seja o DataFrame original com as colunas 'Fault Code' e 'Occurrences'
# Agrupar por 'Fault Code' e somar as ocorrências
df_fault_code_summary = dfFaultCode6030.groupby('Fault Code')['Occurrences'].sum().reset_index()
# Ordenar o DataFrame em ordem decrescente de ocorrências, se necessário
df_fault_code_summary_sorted = df_fault_code_summary.sort_values(by='Occurrences', ascending=False)
# Exibir o DataFrame resultante
print(df_fault_code_summary_sorted)
import plotly.express as px
# Supondo que você tenha um DataFrame chamado dfFaultCode6030 com os dados
# Criar o gráfico de dispersão
fig = px.scatter(dfFaultCode6030, x='Fault Date', y='Occurrences', color='Occurrences',
color_continuous_scale='Reds', title='Gráfico de Dispersão - Occurrences por Fault Date & Severity = 3',
facet_col='Serial Number', facet_col_wrap=3) # facet_col_wrap define quantos gráficos são exibidos por linha
# Exibir o gráfico
fig.show()
import pandas as pd
import plotly.graph_objects as go
# Supondo que você tenha um DataFrame chamado dfFaultCode6030 com os dados
# Agrupar por Serial Number e Fault Code e somar as ocorrências
df_Df6030FaultResumeAll = dfFaultCode6030.groupby(['Serial Number', 'Fault Code'])['Occurrences'].sum().reset_index()
# Calcular o total de ocorrências por Fault Code
total_occurrences = df_Df6030FaultResumeAll.groupby('Fault Code')['Occurrences'].transform('sum')
# Adicionar a coluna com o total de Occurrences ao DataFrame
df_Df6030FaultResumeAll['Total_Occurrences'] = total_occurrences
# Ordenar o DataFrame em ordem decrescente por Total_Occurrences
df_Df6030FaultResumeAll = df_Df6030FaultResumeAll.sort_values(by='Total_Occurrences', ascending=False)
# Selecionar os 10 maiores códigos de falha
top_10_fault_codes = df_Df6030FaultResumeAll.head(40)['Fault Code']
# Filtrar df_Df6030FaultResumeAll mantendo apenas os 10 maiores códigos de falha
df_Df6030FaultResumeAll = df_Df6030FaultResumeAll[df_Df6030FaultResumeAll['Fault Code'].isin(top_10_fault_codes)]
# Remover duplicatas na coluna Fault Code, mantendo apenas os valores únicos com maior Total_Occurrences
df_Df6030FaultResumeAll_unique = df_Df6030FaultResumeAll.drop_duplicates(subset=['Fault Code'])
# Ordenar o DataFrame em ordem decrescente por Serial Number e Fault Code
df_Df6030FaultResumeAll_unique = df_Df6030FaultResumeAll_unique.sort_values(by=['Serial Number', 'Total_Occurrences'], ascending=[True, False])
# Para cada Serial Number, criar um gráfico de barras separado
for serial_number in df_Df6030FaultResumeAll_unique['Serial Number'].unique():
# Filtrar os dados para o Serial Number atual
df_filtered = df_Df6030FaultResumeAll_unique[df_Df6030FaultResumeAll_unique['Serial Number'] == serial_number]
# Criar o gráfico de barras
fig = go.Figure(go.Bar(
x=df_filtered['Fault Code'],
y=df_filtered['Total_Occurrences'],
name=serial_number # Usar o Serial Number como nome do gráfico
))
# Atualizar o layout do gráfico
fig.update_layout(
title=f'Total de Ocorrências por Fault Code para Serial Number {serial_number}',
xaxis_title='Fault Code',
yaxis_title='Total de Ocorrências',
xaxis=dict(type='category') # Garantir que o eixo x seja categórico
)
# Exibir o gráfico
fig.show()
import pandas as pd
import plotly.express as px
# Calcular a quantidade total de ocorrências para cada Fault Code
fault_code_occurrences = dfFaultCode6030.groupby('Fault Code')['Occurrences'].sum()
# Selecionar os top 10 Fault Codes com base na quantidade de ocorrências
top_10_fault_codes = fault_code_occurrences.nlargest(10).index.tolist()
# Filtrar o DataFrame original para incluir apenas os dados relacionados aos top 10 Fault Codes
df_top_10_fault_codes = dfFaultCode6030[dfFaultCode6030['Fault Code'].isin(top_10_fault_codes)]
# Criar o gráfico de dispersão
fig = px.scatter(df_top_10_fault_codes, x='Fault Date', y='Occurrences', color='Fault Code',
title='Gráfico de Dispersão dos Top 10 Fault Codes por Data de Falha',
labels={'Occurrences': 'Quantidade de Ocorrências', 'Fault Date': 'Data de Falha'},
hover_data={'Fault Code': True, 'Occurrences': True})
# Exibir o gráfico
fig.show()
import pandas as pd
import plotly.express as px
dfFaultCode6030_02 = dfFaultCode[dfFaultCode['Serial Number'].isin(["6P300111"])]
# Calcular a quantidade total de ocorrências para cada Fault Code
fault_code_occurrences = dfFaultCode6030_02.groupby('Fault Code')['Occurrences'].sum()
# Selecionar os top 10 Fault Codes com base na quantidade de ocorrências
top_10_fault_codes = fault_code_occurrences.nlargest(10).index.tolist()
# Filtrar o DataFrame original para incluir apenas os dados relacionados aos top 10 Fault Codes
df_top_10_fault_codes = dfFaultCode6030_02[dfFaultCode6030_02['Fault Code'].isin(top_10_fault_codes)]
# Criar o gráfico de dispersão
fig = px.scatter(df_top_10_fault_codes, x='Fault Date', y='Occurrences', color='Fault Code',
title='Gráfico de Dispersão dos Top 10 Fault Codes por Data de Falha 6P300111',
labels={'Occurrences': 'Quantidade de Ocorrências', 'Fault Date': 'Data de Falha'},
hover_data={'Fault Code': True, 'Occurrences': True})
# Exibir o gráfico
fig.show()
import pandas as pd
import plotly.express as px
dfFaultCode6030_01 = dfFaultCode[dfFaultCode['Serial Number'].isin(["6P300101"])]
# Calcular a quantidade total de ocorrências para cada Fault Code
fault_code_occurrences = dfFaultCode6030_01.groupby('Fault Code')['Occurrences'].sum()
# Selecionar os top 10 Fault Codes com base na quantidade de ocorrências
top_10_fault_codes = fault_code_occurrences.nlargest(10).index.tolist()
# Filtrar o DataFrame original para incluir apenas os dados relacionados aos top 10 Fault Codes
df_top_10_fault_codes = dfFaultCode6030_01[dfFaultCode6030_01['Fault Code'].isin(top_10_fault_codes)]
# Criar o gráfico de dispersão
fig = px.scatter(df_top_10_fault_codes, x='Fault Date', y='Occurrences', color='Fault Code',
title='Gráfico de Dispersão dos Top 10 Fault Codes por Data de Falha 6P300101',
labels={'Occurrences': 'Quantidade de Ocorrências', 'Fault Date': 'Data de Falha'},
hover_data={'Fault Code': True, 'Occurrences': True})
# Exibir o gráfico
fig.show()
import pandas as pd
# Suponha que dfFaultCode seja o DataFrame original
# Filtrar o DataFrame original para incluir apenas os dados dos Serial Numbers desejados
dfFaultCode6P300111 = dfFaultCode[dfFaultCode['Serial Number'].isin(["6P300111"])]
# Calcular o total de Occurrences por Fault Code
total_occurrences = dfFaultCode6P300111.groupby('Fault Code')['Occurrences'].transform('sum')
# Adicionar a coluna com o total de Occurrences ao DataFrame
dfFaultCode6P300111['Total_Occurrences'] = total_occurrences
# Selecionar as colunas desejadas
dfFaultCode6P300111 = dfFaultCode6P300111[['Fault Code', 'Total_Occurrences']]
# Remover duplicatas na coluna Fault Code mantendo apenas os valores únicos
dfFaultCode6P300111 = dfFaultCode6P300111.drop_duplicates(subset=['Fault Code'])
# Ordenar o DataFrame em ordem decrescente por Total_Occurrences
dfFaultCode6P300111 = dfFaultCode6P300111.sort_values(by='Total_Occurrences', ascending=False)
# Exibir o DataFrame resultante
dfFaultCode6P300111.head()
import pandas as pd
# Suponha que dfFaultCode seja o DataFrame original
# Filtrar o DataFrame original para incluir apenas os dados dos Serial Numbers desejados
dfFaultCode6P300101 = dfFaultCode[dfFaultCode['Serial Number'].isin(["6P300101"])]
# Calcular o total de Occurrences por Fault Code
total_occurrences = dfFaultCode6P300101.groupby('Fault Code')['Occurrences'].transform('sum')
# Adicionar a coluna com o total de Occurrences ao DataFrame
dfFaultCode6P300101['Total_Occurrences'] = total_occurrences
# Selecionar as colunas desejadas
dfFaultCode6P300101 = dfFaultCode6P300101[['Fault Code', 'Total_Occurrences']]
# Remover duplicatas na coluna Fault Code mantendo apenas os valores únicos
dfFaultCode6P300101 = dfFaultCode6P300101.drop_duplicates(subset=['Fault Code'])
# Ordenar o DataFrame em ordem decrescente por Total_Occurrences
dfFaultCode6P300101 = dfFaultCode6P300101.sort_values(by='Total_Occurrences', ascending=False)
# Selecionar os 10 códigos de falha com o maior número de ocorrências
df_top_10_fault_codes = dfFaultCode6P300101.nlargest(10, 'Total_Occurrences')
# Exibir o DataFrame resultante
dfFaultCode6P300101.head()
import pandas as pd
#dfFaultCode6030 = dfFaultCode[dfFaultCode['Model'] == "6030"]
dfFaultCode777E = dfFaultCode[dfFaultCode['Model'] == "777E-05"]
#dfFaultCode6030 = dfFaultCode6030[dfFaultCode6030['Severity'] >= 1]
dfFaultCode777E.head()
import pandas as pd
import plotly.express as px
dfFaultCode777E_1 = dfFaultCode777E[dfFaultCode777E['Serial Number'].isin(["7W802674"])]
# Calcular a quantidade total de ocorrências para cada Fault Code
fault_code_occurrences = dfFaultCode777E_1.groupby('Fault Code')['Occurrences'].sum()
# Selecionar os top 10 Fault Codes com base na quantidade de ocorrências
top_10_fault_codes = fault_code_occurrences.nlargest(10).index.tolist()
# Filtrar o DataFrame original para incluir apenas os dados relacionados aos top 10 Fault Codes
df_top_10_fault_codes = dfFaultCode777E_1[dfFaultCode777E_1['Fault Code'].isin(top_10_fault_codes)]
# Criar o gráfico de dispersão
fig = px.scatter(df_top_10_fault_codes, x='Fault Date', y='Occurrences', color='Fault Code',
title='Gráfico de Dispersão dos Top 10 Fault Codes por Data de Falha 7W802674',
labels={'Occurrences': 'Quantidade de Ocorrências', 'Fault Date': 'Data de Falha'},
hover_data={'Fault Code': True, 'Occurrences': True})
# Exibir o gráfico
fig.show()
import plotly.express as px
# Supondo que você tenha um DataFrame chamado dfFaultCode6030 com os dados
# Criar o gráfico de dispersão
fig = px.scatter(dfFaultCode777E, x='Fault Date', y='Occurrences', color='Occurrences',
color_continuous_scale='Reds', title='Gráfico de Dispersão - Occurrences por Fault Date',
facet_col='Serial Number', facet_col_wrap=3) # facet_col_wrap define quantos gráficos são exibidos por linha
# Exibir o gráfico
fig.show()
import plotly.express as px
# Supondo que você tenha um DataFrame chamado dfFaultCode6030 com os dados
# Criar o gráfico de dispersão
fig = px.scatter(dfFaultCode777E, x='Fault Date', y='Occurrences', color='Occurrences',
color_continuous_scale='Reds', title='Gráfico de Dispersão - Occurrences por Fault Date',
facet_col='Serial Number', facet_col_wrap=3) # facet_col_wrap define quantos gráficos são exibidos por linha
# Exibir o gráfico
fig.show()
import pandas as pd
from io import BytesIO
# Função para salvar o DataFrame como CSV e enviar para o GitHub
def salvar_e_enviar_para_github(dataframe, nome_arquivo, usuario, repositorio, token):
import requests
from base64 import b64encode
# Salvar DataFrame como CSV em um BytesIO
csv_bytes = BytesIO()
dataframe.to_csv(csv_bytes, index=False)
# Codificar o conteúdo CSV em base64
csv_content = b64encode(csv_bytes.getvalue()).decode()
# Configurar URL e cabeçalhos para a API do GitHub
url = f"https://api.github.com/repos/{usuario}/{repositorio}/contents/{nome_arquivo}"
headers = {
"Authorization": f"token {token}",
"Content-Type": "application/json"
}
# Configurar o payload para a API do GitHub
payload = {
"message": f"Adicionando arquivo {nome_arquivo}",
"content": csv_content
}
# Enviar a solicitação PUT para criar/atualizar o arquivo no repositório do GitHub
response = requests.put(url, headers=headers, json=payload)
# Verificar a resposta da API do GitHub
if response.status_code == 201:
print(f"Arquivo {nome_arquivo} criado com sucesso no repositório {repositorio}.")
elif response.status_code == 200:
print(f"Arquivo {nome_arquivo} atualizado com sucesso no repositório {repositorio}.")
else:
print(f"Falha ao enviar arquivo para o GitHub: {response.status_code} - {response.json()}")
# Dados de exemplo para enviar o DataFrame para o GitHub
seu_usuario = "CidClayQuirino"
seu_repositorio = "rnn-component-lIfe-cycle"
seu_token = "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"
# Salvar e enviar o DataFrame filtrado para o GitHub
salvar_e_enviar_para_github(dfFaultCode6P300101, "dfFaultCode6P300101.csv", seu_usuario, seu_repositorio, seu_token)
salvar_e_enviar_para_github(dfFaultCode6P300111, "dfFaultCode6P300111.csv", seu_usuario, seu_repositorio, seu_token)