我现在和Pandas一起工作,我发现了一个数据集。此数据集具有多个属性,每个属性值分布在12列中。例如,我如何访问和存储chroma_cens峰度作为浮点数的2d Numpy矩阵,即矩阵的每一行都有12列的12个值的向量?
附加的是我要处理的属性的前几行。

编辑:Dataset的第一个属性行为文本
feature chroma_cens chroma_cens chroma_cens chroma_cens chroma_cens chroma_cens chroma_cens chroma_cens chroma_cens chroma_cens chroma_cens chroma_cens
statistics kurtosis kurtosis kurtosis kurtosis kurtosis kurtosis kurtosis kurtosis kurtosis kurtosis kurtosis kurtosis
number 1 2 3 4 5 6 7 8 9 10 11 12
track_id
2 7.1806526184 5.2303090096 0.2493208051 1.3476201296 1.4824777842 0.5313712359 1.4815930128 2.691454649 0.8668681979 1.3412306309 1.3477915525 1.2376583815发布于 2018-01-10 13:00:20
我想你可以用元组来选择:
#sample data with 6 columns for each pair a, b
np.random.seed(125)
N = 10
a = ['chroma_cens']
b = ['kurtosis', 'skewness']
c = range(1, 7)
mux = pd.MultiIndex.from_product([a,b,c])
df = pd.DataFrame(np.random.rand(N, 12), columns=mux)print (df)
chroma_cens \
kurtosis skewness
1 2 3 4 5 6 1
0 0.506726 0.057531 0.627580 0.132553 0.131085 0.788544 0.506686
1 0.891442 0.086312 0.847512 0.529616 0.550261 0.848461 0.158998
2 0.481331 0.382784 0.874249 0.363505 0.384864 0.035155 0.634643
3 0.623105 0.999237 0.567151 0.487938 0.104856 0.525416 0.284066
4 0.488099 0.167418 0.277106 0.097982 0.930415 0.486878 0.720688
5 0.981763 0.285865 0.979590 0.924292 0.631067 0.119238 0.855842
6 0.346577 0.329280 0.606794 0.825932 0.273021 0.503340 0.828568
7 0.635208 0.283928 0.821345 0.874243 0.454211 0.622611 0.267682
8 0.844209 0.662073 0.590640 0.612480 0.258679 0.413567 0.797383
9 0.352072 0.801542 0.862749 0.000285 0.793939 0.297286 0.441013
2 3 4 5 6
0 0.412826 0.578009 0.488174 0.335964 0.140816
1 0.297996 0.817808 0.977898 0.933133 0.310414
2 0.009076 0.197091 0.880822 0.002330 0.109501
3 0.658453 0.989523 0.644251 0.303101 0.141395
4 0.192273 0.210032 0.244598 0.175200 0.367130
5 0.782623 0.815908 0.575624 0.037598 0.532883
6 0.429792 0.491665 0.752531 0.780970 0.524148
7 0.726456 0.379144 0.345580 0.694614 0.585782
8 0.431819 0.034473 0.581294 0.282111 0.856725
9 0.294635 0.841181 0.804839 0.311352 0.171094 tup = ('chroma_cens', 'kurtosis', 2)
print (df[tup])
0 0.057531
1 0.086312
2 0.382784
3 0.999237
4 0.167418
5 0.285865
6 0.329280
7 0.283928
8 0.662073
9 0.801542
Name: (chroma_cens, kurtosis, 2), dtype: float64如果要选择多列,请使用slicers
idx = pd.IndexSlice
print (df.loc[:, idx['chroma_cens', 'kurtosis', :]])
chroma_cens
kurtosis
1 2 3 4 5 6
0 0.506726 0.057531 0.627580 0.132553 0.131085 0.788544
1 0.891442 0.086312 0.847512 0.529616 0.550261 0.848461
2 0.481331 0.382784 0.874249 0.363505 0.384864 0.035155
3 0.623105 0.999237 0.567151 0.487938 0.104856 0.525416
4 0.488099 0.167418 0.277106 0.097982 0.930415 0.486878
5 0.981763 0.285865 0.979590 0.924292 0.631067 0.119238
6 0.346577 0.329280 0.606794 0.825932 0.273021 0.503340
7 0.635208 0.283928 0.821345 0.874243 0.454211 0.622611
8 0.844209 0.662073 0.590640 0.612480 0.258679 0.413567
9 0.352072 0.801542 0.862749 0.000285 0.793939 0.297286或DataFrame.xs
print (df.xs(('chroma_cens', 'kurtosis'), axis=1))
1 2 3 4 5 6
0 0.506726 0.057531 0.627580 0.132553 0.131085 0.788544
1 0.891442 0.086312 0.847512 0.529616 0.550261 0.848461
2 0.481331 0.382784 0.874249 0.363505 0.384864 0.035155
3 0.623105 0.999237 0.567151 0.487938 0.104856 0.525416
4 0.488099 0.167418 0.277106 0.097982 0.930415 0.486878
5 0.981763 0.285865 0.979590 0.924292 0.631067 0.119238
6 0.346577 0.329280 0.606794 0.825932 0.273021 0.503340
7 0.635208 0.283928 0.821345 0.874243 0.454211 0.622611
8 0.844209 0.662073 0.590640 0.612480 0.258679 0.413567
9 0.352072 0.801542 0.862749 0.000285 0.793939 0.297286https://stackoverflow.com/questions/48187724
复制相似问题