说,你有3个numpy的数组:lat
,lon
,val
:
import numpy as np lat=np.array([[10, 20, 30], [20, 11, 33], [21, 20, 10]]) lon=np.array([[100, 102, 103], [105, 101, 102], [100, 102, 103]]) val=np.array([[17, 2, 11], [86, 84, 1], [9, 5, 10]])
并且假设您要创建一个pandas
数据框df.columns = ['lat', 'lon', 'val']
,但由于每个值lat
都与a long
和val
数量相关联,因此您希望它们出现在同一行中.
此外,您希望每列的按行顺序跟随每个数组中的位置,以便获取以下数据帧:
lat lon val 0 10 100 17 1 20 102 2 2 30 103 11 3 20 105 86 ... ... ... ...
所以基本上数据帧中的第一行存储每个数组的"第一"数量,依此类推.这该怎么做?
我无法找到这样做的pythonic方式,所以任何帮助都将非常感激.
我认为最简单的方法是使用ravel来平化数组:
df = pd.DataFrame({'lat': lat.ravel(), 'long': long.ravel(), 'val': val.ravel()}) print (df) lat long val 0 10 100 17 1 20 102 2 2 30 103 11 3 20 105 86 4 11 101 84 5 33 102 1 6 21 100 9 7 20 102 5 8 10 103 10