我有一个像这样的数据框,我想用熊猫将行乘以另一个数据框中的引用值。之后,我想添加这些行中的所有产品并将其存储在称为Pro_Sum的列中。我知道Python不会通过引用传递任何东西,但是我可以在这里进行名称绑定,因此我试图创建一个字典来根据其名称乘以值,但是我没有成功。
df = pd.read_excel (C:/"dummy")
d = {"C1": 2, "C2": 5,"C3":4, "C4":1}
df.mul(pd.Series(d), axis=1)
prod = d.keys()
df[prod] = df[prod].mul(pd.Series(d), axis=1)[prod]
to_sum_t = list(df)
#.sum ignores the none numeric values.
df['Pro_sum'] = df[to_sum_t].sum(axis=1)
输入
ID AU HP Name1 Value1 CHC1 Name2 Value2 CHC2 Name3 Value3 CHC3
1 4 3 C1 10 100 0 0 0 0 0 0
2 6 2 C2 20 95 C1 6 5 0 0 0
3 2 7 C3 4 40 C4 6 60 0 0 0
4 8 9 C1 8 100 0 0 0 0 0 0
5 2 6 C1 6 10 C2 15 86 C4 1 4
参考列
Names Values
C1 2
C2 5
C3 4
C4 1
Example row 5 Pro_Sum = 6*2 + 15*5 + 1*1 = 88
最小输出
ID AU HP Name1 Value1 CHC1 Name2 Value2 CHC2 Name3 Value3 CHC3 Pro_Sum
1 4 3 C1 10 100 0 0 0 0 0 0 20
2 6 2 C2 20 95 C1 6 5 0 0 0 112
5 2 6 C1 6 10 C2 15 86 C4 1 4 88
答案 0 :(得分:1)
我认为按名称需要filter
列,按字典需要replace
值,并按values
,倍数,求和并分配给新列将其转换为numpy数组:
function getPosts(page) {
$.ajax({
url : '?page=' + page,
dataType: 'json',
}).done(function (data) {
$('.posts').html(data);
//bind again
$("#select").on("change", function() {
alert();
});
location.hash = page;
}).fail(function () {
alert('Posts could not be loaded.');
});
}