Проблемы с форматированием сложного файла Excel в фрейм данных pandas для анализа данных.Python

Программы на Python
Ответить
Anonymous
 Проблемы с форматированием сложного файла Excel в фрейм данных pandas для анализа данных.

Сообщение Anonymous »

Я пытаюсь обработать файл с помощью Pandas, чтобы найти корреляцию между переменными и конкретным результатом, который я получаю, но он отформатирован таким образом, что мне это затруднительно.
Быстро объяснение проблемы
Я производю продукт и получаю окончательный результат после 6 итераций одной и той же процедуры. Я назову БОЛЬШУЮ ПАРТИЮ ансамблем из 6 итераций, а каждую итерацию я назову «партией».
Во время каждой итерации я собираю данные по нескольким параметрам.
Когда все 6 итераций выполнены, я объединяю их все, чтобы получить окончательный продукт, затем тестирую продукт, и этот тест дает мне процент от 0 % до 100 %. (Мой продукт хорош, если мой процент в конечном тесте составляет от 45 % до 65 %).
Я пытаюсь проанализировать свои данные, чтобы увидеть корреляцию между всеми параметрами и конечный результат, чтобы понять, какие параметры мне следует настроить и, если возможно, в каком направлении получить результат от 45 % до 65 %.
Краткий обзор того, как форматируются мои данные
(Это представляет собой упрощенный образец с поддельными данными)
Изображение файла Excel с выделенными частями
Проблема, с которой я столкнулся
Я не могу пройти этап правильного форматирования данных с помощью Pandas, чтобы провести какой-либо анализ. Я даже не уверен, как мне его отформатировать.
Что я пробовал
Я опубликую свою лучшую попытку без всех неудачные испытания, но я даже не уверен, что пойду куда-нибудь. Я пытался создать столбец для каждой большой партии для размещения результатов и создать мультииндекс для перегруппировки данных по «Большому шагу»/Параметры/Большая партия/партия, но последняя часть вызывает у меня проблемы, а первая часть, я даже не уверен, как буду ее правильно использовать потом.
Код ниже:

Код: Выделить всё

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

url = "path\simplified fake data.xlsx"

df = pd.read_excel(url, sheet_name='Feuille2', header=None)
# Extract and transpose the first two rows
first_two_rows = df.iloc[:1]
transposed_headers = first_two_rows.T
# Drop the first two rows
df = df.iloc[1:]

df.loc[2,0] = "General"
df.loc[1,0] = "test"
new_row = ["General", "Final test", "45% - 65%"] + [np.nan] * (df.shape[1] - 3)
df.loc[3] = new_row

def add_column_every_n(df, n, new_col_name, new_col_value):
num_cols = df.shape[1]
cpt = 0
for i in range(n+3, num_cols  +int(num_cols/n), n + 1):
df.insert(i, new_col_name + str(i), new_col_value)
df.iloc[2,i] = first_two_row.iloc[0,i-n-cpt]
df.iloc[1,i] = "Lot"
cpt = cpt + 1
return df

df = add_column_every_n(df, 6, 'NewCol', pd.NA)

df.head()

результат df.head()

Код: Выделить всё

# Forward fill the remaining NaNs
df[0] = df[0].ffill()
df.iloc[0,:] = df.iloc[0,:].ffill()
df.head()
результат df.head()

Код: Выделить всё

df = df.T

new_headers = df.iloc[:2].values.tolist()

# Drop the first two rows from the dataframe
df = df.iloc[2:]

# Combine the first two rows to form multi-level headers
df.columns = pd.MultiIndex.from_arrays(new_headers)
df.head()

результат df.head()
Чего я думаю, что хочу
Я даже не уверен в конечном итоге я хочу найти правильный способ сделать это, чтобы получить пригодные для использования данные для анализа. Поэтому я открыт для любых лучших предложений. Вот как, по моему мнению, это должно выглядеть:
Мое представление о том, как, по моему мнению, это должно выглядеть.
Как я могу обработать такой набор данных, или как мне в конце концов отформатировать его, чтобы иметь возможность использовать панды/другие библиотеки для его анализа? Я следил за уроками на YouTube и курсами на Coursera, но они никогда не объясняли, как решать такие сложные проблемы.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ata-analys
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»