从标量数据格式的多维数组在python中创建Dataframe列

Posted

技术标签:

【中文标题】从标量数据格式的多维数组在python中创建Dataframe列【英文标题】:Creating Dataframe columns in python from a multidimensional array in a scalar data format 【发布时间】:2020-05-08 13:14:10 【问题描述】:

我有标量数据变量,我正在尝试从中创建一个数据框。每个 zVariable 应该是 Dataframe 中的一列,每个 zVariable 旁边有 86400 行(整数值)。

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

最后一个 zVariable 'B_VRM' 是一个包含三个值的数组,我还需要让它们成为 Dataframe 中的列。

[[ 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】:
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)

所以你做类似的事情

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] )

【讨论】:

以上是关于从标量数据格式的多维数组在python中创建Dataframe列的主要内容,如果未能解决你的问题,请参考以下文章

在 Powershell 中创建多维哈希表数组

如何在 Collection anylogic 中创建多维数组?

无法在 codeigniter 中创建多维数组

在jquery中创建一个多维数组

如何在html表中创建多维数组

在 iOS 中创建多维数组