我制作了一个字典,每个键引用一个数组。我正试图对每个数组应用一个.loc命令,但我似乎不知道该怎么做。我想知道如何做到这一点:
#setup:
import pandas as pd
psd = pd.read_csv('psd.csv')
psd.head()
Out[43]:
id group band fp1 ... fz cz pz oz
0 3407906 Cu- delta 0.291945 ... 0.230908 0.221589 0.247830 0.229259
1 3407906 Cu- theta 0.022924 ... 0.026598 0.036143 0.029904 0.025336
2 3407906 Cu- alpha 0.003124 ... 0.017416 0.015175 0.015207 0.028024
3 3407906 Cu- beta 0.000573 ... 0.005325 0.006429 0.003628 0.003757
4 3407906 Cu- gamma 0.000485 ... 0.002627 0.002037 0.000956 0.001303
gp = dict(tuple(psd.groupby('band')))
list(gp.keys())
Out[44]: ['alpha', 'beta', 'delta', 'gamma', 'theta']
for key in gp:
print(gp[key].head(1))
Out[45]:
id group band fp1 ... fz cz pz oz
2 3407906 Cu- alpha 0.003124 ... 0.017416 0.015175 0.015207 0.028024
[1 rows x 32 columns]
id group band fp1 ... fz cz pz oz
3 3407906 Cu- beta 0.000573 ... 0.005325 0.006429 0.003628 0.003757
[1 rows x 32 columns]
id group band fp1 ... fz cz pz oz
0 3407906 Cu- delta 0.291945 ... 0.230908 0.221589 0.24783 0.229259
[1 rows x 32 columns]
id group band fp1 ... fz cz pz oz
4 3407906 Cu- gamma 0.000485 ... 0.002627 0.002037 0.000956 0.001303
[1 rows x 32 columns]
id group band fp1 ... fz cz pz oz
1 3407906 Cu- theta 0.022924 ... 0.026598 0.036143 0.029904 0.025336
到目前为止还不错,但当我尝试以下方法时:
for key in gp:
band = gp[key]
x_band = band.loc[:,'fp1':'oz']
x_band.head()
Out[49]:
fp1 f3 f7 ... cz pz oz
1 0.022924 0.019966 0.021740 ... 0.036143 0.029904 0.025336
6 0.028581 0.026947 0.025785 ... 0.028249 0.028188 0.025704
11 0.005078 0.001958 0.003227 ... 0.002071 0.002150 0.002991
16 0.014026 0.030532 0.018575 ... 0.036702 0.027133 0.020489
21 0.002640 0.001335 0.002605 ... 0.001256 0.001974 0.003032
您可以看到的结果仅适用于最后一个键/数组,而不是应用了band.loc命令的5个数组的字典。我可以/确实手动完成这项工作,结果得到了5个不同的阵列。但是有没有办法让它保持字典格式,这样我就不必从这一步开始做每件事5次了?很高兴澄清,对不起,这是一个奇怪的措辞
目前没有回答
相关问题 更多 >
编程相关推荐