FaC*_*fee 8 python arrays numpy dataframe pandas
说,你有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]])
Run Code Online (Sandbox Code Playgroud)
并且假设您要创建一个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
... ... ... ...
Run Code Online (Sandbox Code Playgroud)
所以基本上数据帧中的第一行存储每个数组的"第一"数量,依此类推.这该怎么做?
我无法找到这样做的pythonic方式,所以任何帮助都将非常感激.
jez*_*ael 10
我认为最简单的方法是使用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
Run Code Online (Sandbox Code Playgroud)