我想根据几个变量列表对我的数据帧进行子集化,即:
list1=[var1,var2,var3]
list2=[var4,var5,var6]
data_final = data[list1,list2]
产生了这个错误:
TypeError: unhashable type: 'list'
如果我提供一个列表,一切正常:
data_final = data[list1]
以下是最小例子:
dict1 = [{'var0': 0, 'var1': 1, 'var2': 2},
{'var0': 0, 'var1': 2, 'var2': 4},
{'var0': 1, 'var1': 5, 'var2': 8},
{'var0': 1, 'var1': 15, 'var2': 12},]
df = pd.DataFrame(dict1, index=['s1', 's2','s3','s4'])
list1=['var0']
list2=['var1','var2']
这两个命令工作正常:
df[list1]
df[list2]
但是这个产生了上面提到的错误:
df[list1,list2]
最佳答案 这是你期望的输出吗?
df[list1 + list2]
Out[106]:
var0 var1 var2
s1 0 1 2
s2 0 2 4
s3 1 5 8
s4 1 15 12