我想从具有多个索引的特定pandas数据框中的名为'index'的列中获取信息。但是,应列出该指数。请参阅以下示例。
index ID
0 0 1.0 17226815
1 0 2.0 17226807
2 0 3.0 17226816
3 0 4.0 17226808
4 0 5.0 17231739
5 0 6.0 17231739
6 0 1.0 17226815
1 2.0 17226807
7 0 1.0 17226815
1 3.0 17226816
filtered_list = [3, 5, 7]
使用以下行我可以获得过滤后的数据。
print(df.loc[df.index.isin(filtered_list, level=0)]['index'])
出:
3 0 4.0
5 0 6.0
7 0 1.0
1 3.0
我想得到的是一个由'index'值组成的列表。然后它将作为过滤索引旁边的附加信息。它显示如下:
0 3 4
1 5 6
2 7 (1, 3)
如何获取此列表?
提前谢谢。
答案 0 :(得分:1)
如果我理解正确,
function persistence(num) {
numString = num.toString();
let sum = 1;
for (var i = 0; i < numString.length; i++) {
sum = sum * numString[i];
}
console.log(sum);
};
persistence(485);
输出:
df.loc[filtered_list,'index'].groupby(level=0).apply(tuple).reset_index()
更进一步:
0 index
0 3 (4.0,)
1 5 (6.0,)
2 7 (1.0, 3.0)
输出:
df.loc[filtered_list,'index']\
.groupby(level=0)\
.apply(lambda x: tuple(x)[0] if len(x.index)==1 else tuple(x))\
.reset_index()