从标量数据格式的多维数组在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列的主要内容,如果未能解决你的问题,请参考以下文章