У меня есть CSV-файл, 78 столбцов на 400 000. Ниже приведен упрощенный пример: '' '
df=pd.DataFrame({'X':[1,2,3,4],
'Y':[0,0,1,1],
'Z':[0,0,0,0],
'Location':[1,2,3,4],
'Data1':[123,645,324,876]
'Data2':[733,347,547,764]
'Data3':[245,846,435,099]
'Data4':[748,664,222,810]}
' ''
Избавьтесь от устаревшего ключа lo c при попытке использовать ключи для столбцов: '' '
headers=df.keys().tolist()
df=df.reindex(columns=headers)
'' '
Мне нужно создать вывод, который повторяет X, Y, Z для каждого значения «Местоположение», вращая «Данные1» - «Данные4».
Кажется, что функция плавления хороша для этого,
'' '
df2=pd.melt(df, id_vars=['X','Y','Z'], value_vars=['Location', 'Data1', 'Data2', 'Data3', 'Data4'], value_name='Measurements')
' '' Получите нужный мне формат данных перед математическим преобразованием. '' '
X Y Z variable Measurements
1 0 0 Data1 123
2 0 0 Data1 645
... (Many Rows Later)
4 1 0 Data4 810
' ''
Теперь мне нужно сделать реальную математику, что этот вопрос о
Как у меня 48 типы переменных из Data1-Data48. Мне нужно изменить поле Z, каким бы ни было поле данных (я создаю облако точек для некоторого геологического моделирования / визуализации). Единственный способ, которым я могу подумать, это сделать 48 операторов if и вычислить каждое из них в al oop и добавить к столбцу Z соответствующее смещение ...
Теперь это кажется неэффективным, и есть Должен быть другой путь, я пытался найти выход из этого положения, и мне совсем не повезло.