我想基于多行中的其他列值在python数据框中创建一个新列。 例如,我的python数据框df:
A | B
------------
10 | 1
20 | 1
30 | 1
10 | 1
10 | 2
15 | 3
10 | 3
我想基于变量A的值创建变量C,并在多行中使用变量B的条件。当第i,i + 1,...行中的变量B的值时,C的值是这些行中变量A的总和。在这种情况下,我的输出数据帧将是:
A | B | C
--------------------
10 | 1 | 70
20 | 1 | 70
30 | 1 | 70
10 | 1 | 70
10 | 2 | 10
15 | 3 | 25
10 | 3 | 25
我不知道实现此目标的最佳方法。有人可以帮忙吗?
预先感谢
答案 0 :(得分:1)
重新创建数据:
import pandas as pd
A = [10,20,30,10,10,15,10]
B = [1,1,1,1,2,3,3]
df = pd.DataFrame({'A':A, 'B':B})
df
A B
0 10 1
1 20 1
2 30 1
3 10 1
4 10 2
5 15 3
6 10 3
然后我将根据df创建一个查找系列:
lookup = df.groupby('B')['A'].sum()
lookup
A
B
1 70
2 10
3 25
然后我将使用Apply在df上使用该查找
df.loc[:,'C'] = df.apply(lambda row: lookup[lookup.index == row['B']].values[0], axis=1)
df
A B C
0 10 1 70
1 20 1 70
2 30 1 70
3 10 1 70
4 10 2 10
5 15 3 25
6 10 3 25
答案 1 :(得分:0)
您必须使用final String Ptrbilldate = getIntent().getStringExtra("Ptrbilldate");
editTextdatepetrolbill.setText(Ptrbilldate);
方法将groupby()
上的行和B
上的sum()
分组。
A