我正在使用 pandas 数据帧,这些数据帧本质上是这样的时间序列:
level
Date
1976-01-01 409.67
1976-02-01 409.58
1976-03-01 409.66
…
我想要的是级别列的多个索引/标题,如下所示:
Station1 #Name of the datasource
43.1977317,-4.6473648,5 #Lat/Lon of the source
Precip #Type of data
Date
1976-01-01 409.67
1976-02-01 409.58
1976-03-01 409.66
…
所以本质上我正在寻找类似的东西
Mydata.columns.level1 = ['Station1']
Mydata.columns.level2 = ['Lat','Lon']
Mydata.columns.level3 = ['Precip']
原因是单个位置可以有多个数据集,并且我希望能够从一个位置的所有数据或所有位置的某种类型的所有数据,从后续合并的大数据帧中选取。
我可以从 pandas 文档中设置一个示例数据框,并测试我的选择,但对于我的真实数据,我需要采用不同的方式来设置索引,如示例中所示。
Example:
header = [np.array(['location','location','location','location2','location2','location2']),
np.array(['S1','S2','S3','S1','S2','S3'])]
df = pd.DataFrame(np.random.randn(5, 6), index=['a','b','c','d','e'], columns=header )
然后我可以按数据类型选择数据:
df.loc(axis=1)[:,'S1']
location location2
S1 S1
a -1.469932 -0.317262
b 0.047170 0.601172
c -0.257479 -0.242490
d 0.832949 -0.070383
e -0.628549 -2.319316
或地点:
df['location']
S1 S2 S3
a -1.469932 -1.544511 -1.373463
b 0.047170 -0.339423 1.351253
c -0.257479 1.140829 0.188291
d 0.832949 0.098170 -0.818513
e -0.628549 -0.158419 0.366167
或者我只是在寻找错误的术语?因为文档中 90% 的示例以及此处的问题仅将垂直“内容”(在我的例子中为日期或 abcde)视为索引,并且快速df.index.values
我的测试数据也让我得到了垂直方向array(['a', 'b', 'c', 'd', 'e'], dtype=object)
.