我有这个公式,我想将其转换为熊猫计算,
公式很简单:
NEW = A(where v=1) + A(where v=3) + A(where v=5)
我有一个像这样的数据框:
Type subType value A NEW
X a 1 3 =3+9+9=21
X a 3 9
X a 5 9
X b 1 4 =4+5+0=9
X b 3 5
X b 5 0
Y a 1 1 =1+2+3=6
Y a 3 2
Y a 5 3
Y b 1 4 =4+5+2=11
Y b 3 5
Y b 5 2
两个问题:
我知道我可以只记录指定单元格的计算,但是我希望代码看起来更好,是否还有其他获取值的方法?
由于X和Y只有两个结果,如何将它们添加到原始数据框中以进行进一步计算? (我的想法是不要将它们添加到数据框中,而仅在以后需要计算时使用该值) 编码非常新,任何答案将不胜感激!
答案 0 :(得分:2)
尝试一下:
jasmine.getEnv().addReporter(new AllureReporter({
resultsDir: 'allure-results'
}));
jasmine.getEnv().afterEach(function (done) {
browser.takeScreenshot().then(function (png) {
allure.createAttachment(exports.config.multiCapabilities.name, function () {
return new Buffer(png, 'base64')
}, 'image/png')();
done();
})
});
}
希望这会有所帮助。
您正在将元组键映射到一个序列,这将给您带来错误。在执行映射之前,应将需要将字典映射到索引的列移动为索引。
见下文:
>>> import pandas as pd
>>> df = pd.DataFrame({'Type':['X','X','X','Y','Y','Y'], 'value':[1,3,5,1,3,5], 'A':[3,9,4,0,2,2]})
>>> df
Type value A
0 X 1 3
1 X 3 9
2 X 5 4
3 Y 1 0
4 Y 3 2
5 Y 5 2
>>> df.groupby('Type')['A'].sum()
Type
X 16
Y 4
>>> ur_dict = df.groupby('Type')['A'].sum().to_dict()
>>> df['NEW'] = df['Type'].map(ur_dict)
>>> df
Type value A NEW
0 X 1 3 16
1 X 3 9 16
2 X 5 4 16
3 Y 1 0 4
4 Y 3 2 4
5 Y 5 2 4