我的任务非常简单。基本上,我想创建一个pandas系列并使用元组值作为索引。例如,
// loop function
function testloop() {
let finished = false;
function loop () {
if (!finished) {
console.log('checkpoint 1'); // checkpoint
scrape('https://www.google.com/', (sometext) => {
console.log('checkpoint 4', sometext); // checkpoint
finished = true;
});
setTimeout(loop, 0);
}
}
loop();
}
我想要做的是,我想在pd.Series中再创建一行,其索引为(0,'a'),其值为1.
以上代码出错:
series_tmp = pd.Series()
series_tmp[(0,'a')] = 1
任何帮助?
我知道多索引,但它无法帮助我的情况。因为我需要有非常复杂的元组,如('a',(2,'c'),'d')作为键。
结论:感谢所有精彩的答案!要添加一个以元组作为索引的行,我们应该这样做:
KeyError: '[0 1] not in index'
答案 0 :(得分:2)
如果要从数据创建具有多索引的系列对象,则可以通过构造以元组为键,数据为值的字典来实现。然后将其传递给系列构造函数。
Animal.where(species: 'dog').or(Animal.where(species: 'cat'))
对于这种情况,需要显式元组的索引。在这种情况下,您可以提前构造索引,然后在构造系列时将其用作import pandas as pd
d = {(0,'a'):1, (0,'b'):1.5, (1,'a'):3, (1,'b'):3.5}
s = pd.Series(d)
s
# returns:
0 a 1.0
b 1.5
1 a 3.0
b 3.5
dtype: float64
参数。
index
答案 1 :(得分:1)
试试这样:
df = pd.DataFrame(columns=['a', 'b'], index=pd.MultiIndex.from_tuples([('0', 'a'), ('1', 'b')]))
print(df)
输出:
a b
0 a NaN NaN
1 b NaN NaN
答案 2 :(得分:1)
In :series_tmp = pd.Series([5,6],index=[(0,'a'),(1,'b')])
series_tmp
Out:(0, a) 5
(1, b) 6
dtype: int64