Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带整数标签的多索引_Python_Pandas - Fatal编程技术网

Python 带整数标签的多索引

Python 带整数标签的多索引,python,pandas,Python,Pandas,我有一个多重索引,有些级别用字符串标记,有些级别用整数标记: import pandas as pd metrics = ['PT', 'TF', 'AF'] n_replicates = 3 n_nodes = 6 cols = [(r,m,n) for r in range(n_replicates) for m in metrics for n in range(n_nodes)] cols = pd.MultiIndex.from_tuples(cols,names = ['Replic

我有一个多重索引,有些级别用字符串标记,有些级别用整数标记:

import pandas as pd
metrics = ['PT', 'TF', 'AF']
n_replicates = 3
n_nodes = 6
cols = [(r,m,n) for r in range(n_replicates) for m in metrics for n in range(n_nodes)]
cols = pd.MultiIndex.from_tuples(cols,names = ['Replicates', 'Metrics', 'Nodes'])

ind = range(5)
df = pd.DataFrame(columns=cols, index=ind)
df.sortlevel(level=0, axis=1, inplace=True)
如果要选择带有整数标签的单个列,则没有问题:

df[2,'AF',10]
但是,如果我尝试选择一个范围:

df[1:4,'AF',10]
TypeError: 
(No message given)
如果省略最后一个级别,则会出现不同的错误:

df.sortlevel(level=0,axis=1,inplace=True)
df[1:4,'AF']
TypeError: unhashable type
当我使用整数作为列标签时,我怀疑我在玩火。将它们全部作为字符串使用是否“安全”呢?或者是否有其他方法使用整数标签索引多索引数据帧

编辑: 现在我很清楚我应该使用.loc。好。然而,我仍然不清楚如何与较低级别的多索引进行交互

df.loc[:,:] #Good
df.loc[:,1:2] #Good
df.loc[:,[1:2, 'AF']]
SyntaxError: invalid syntax
df.loc[:,1:2].xs('AF', level='Metrics', axis=1) #Good

最后一行就是我要用的吗?如果是的话,很好。它足够长,让我觉得我不知道更好的方法。谢谢你的帮助

您是否尝试过使用df.loc?请发布一个完整的输入示例(例如df),以及您对输出的期望;您需要使用
.loc