这是我的问题的最小工作示例:
import pandas as pd
columns = pd.MultiIndex.from_product([['a', 'b', 'c'], range(2)])
a = pd.DataFrame(0.0, index=range(3),columns=columns, dtype='float')
b = pd.Series([13.0, 15.0])
a.loc[1,'b'] = b # this line results in NaNs
a.loc[1,'b'] = b.values # this yields correct behavior
Run Code Online (Sandbox Code Playgroud)
为什么第一个作业不正确?两个系列似乎都有相同的索引,所以我认为它应该产生正确的结果.
我正在使用熊猫0.17.0.
我正在处理地质数据.数据是框的垂直(z)列的2D(xy)图,每个框具有与其相关联的多于1个数值参数.随着代码的发展,我需要自由添加/删除框参数(这意味着我现在已经不知道我实际需要多少).方框的数量因地图而异.因此得到的3D阵列在z方向上呈锯齿状.应用于数据的算法一次在一个垂直列的框上工作.
使用numpy/scipy工具表示这种数据结构的合理方法是什么?我想过一个带有自定义dtype的3D结构化数组.但由于数据固有的锯齿状性,它可能会有很多零.