如何在 pandas 数据框中混合一维和二维变量?

问题描述 投票:0回答:1

我正在处理大量具有以下形式的数据:

import pandas as pd
import numpy as np

lat = np.array([80.589, 80.592, 80.595])
lon = np.array([50.268, 50.264, 50.260])
wav = np.array([[486, 605, 666, 821, 777,  719],
                [ 65,  60,  68,  67,  72,   64],
                [866, 946, 882, 855, 999, 1195]])
print("lat shape:",lat.shape)
print("lon shape:",lon.shape)
print("wav shape:",wav.shape)

# lat shape: (3,)
# lon shape: (3,)
# wav shape: (3, 6)

df = pd.DataFrame({
    'Lon': lon,
    'Lat': lat,
    'Wav': wav})

给出错误“ValueError:每列数组必须都是一维的”

我可以通过将 wav 的内容转换为字符串并在需要时再转换回来来解决这个问题,但这太丑陋了,我想找到处理 pandas 数据框中混合维度数组的正确方法。

想要的结果:

print(df.head(1))

      Lon     Lat    Wav
0  50.268  80.589    [486, 605, 666, 821, 777,  719]
python pandas
1个回答
-1
投票

我可能建议转置“wav”以获得 (6,3) 的形状;但是,您能否向我们提供您想要的结果?

wav = wav.T

© www.soinside.com 2019 - 2024. All rights reserved.