Создание столбцов Dataframe в python из многомерного массива в скалярном формате данных - PullRequest
1 голос
/ 22 января 2020

У меня есть скалярные переменные данных, и я пытаюсь создать из них Dataframe. Каждый zVariable должен быть столбцом в кадре данных, кроме каждого zVariable есть 86400 строк (целочисленных значений).

'zVariables': ['Timestamp', 'Latitude', 'Longitude', 'Radius', 'F', 'B_VFM']

Последний zVariable 'B_VRM' представляет собой массив из трех значений, а также Мне нужно, чтобы они были столбцами в кадре данных.

[[ 14890.7946   8176.8956 -29578.3765]
 [ 14880.6053   8182.9793 -29612.3667]
 [ 14870.5356   8189.2477 -29646.2455]
 ...
 [ 24488.9148    653.4524  34001.9001]
 [ 24455.326     657.2675  34060.0058]
 [ 24421.7463    661.0861  34117.9878]]

Чтобы создать кадр данных, я использую этот код. Проблема в том, что мне нужно включить столбцы из zVarible с тремя измерениями , Я пробовал numpy и набор циклов, но кажется, что он более сложный, чем на самом деле. Любой совет или способ решения этой проблемы?

import pandas as pd


dfSatA = pd.DataFrame({'LatA':SatA.varget('Latitude'), 'LongA':SatA.varget('Longitude'), 'Fa':SatA.varget('F'), 'Ta':SatA.varget('Timestamp')})

цель varget - получить zVariables из скалярного формата, где данные

1 Ответ

0 голосов
/ 17 марта 2020
import pandas as pd
import numpy as np

Создание случайных данных для эксперимента на

Lat = np.random.rand(7,1)
Long = np.random.rand(7,1)
B_VRM = np.random.rand(7,3)

Объединить все данные на второй оси и передать их конструктору DataFrame

all_data = np.concatenate( (Lat, Long, B_VRM) , axis = 1 )
df = pd.DataFrame( data = all_data, columns = ['LatA', 'LongA', 'B_VRM_x' , 'B_VRM_y', 'B_VRM_z']) 
print(df)

enter image description here

Итак, вы делаете нечто подобное

your_data = np.concatenate( ( SatA.varget('Latitude'), SatA.varget('Longitude'), SatA.varget('F'), SatA.varget('Timestamp'), SatA.varget('B_VRM') ) , axis = 1 )

pd.DataFrame( data = your_data, columns = ['LatA', 'LongA', 'Fa','Ta', 'B0', 'B1', 'B2] )
...