我正在尝试按来源划分结算行的数量。帐单行数据量报告为一个值,但我知道其中55%的数据量来自源A,而45%的数据源来自源B。如何在Pandas数据框中创建新行以将该行分为两行,每个来源一个?
我可以计算每个来源的新体积值并将其放入新列中,但是我不确定如何将这些值输入到新行中。
来源A应该是计数的55%,来源B应该是计数的45%。
from pandas import DataFrame
import numpy as np
before = DataFrame([{'Day': 1, 'Billing Line': 'abcdefg', 'Count': 1000},
{'Day': 2, 'Billing Line': 'abcdefg', 'Count': 2000}])
after = DataFrame([{'Day': 1, 'Billing Line': 'abcdefg', 'Count': 550, 'Source': 'a'},
{'Day': 1,'Billing Line': 'abcdefg', 'Count': 450, 'Source':'b'},
{'Day': 2,'Billing Line': 'abcdefg', 'Count': 1100, 'Source':'a'},
{'Day': 2,'Billing Line': 'abcdefg', 'Count': 900, 'Source':'b'}])
答案 0 :(得分:0)
我们使用unnest
before['pct']=[[0.45,0.55]]*len(before)
before['Source']=[['a','b']]*len(before)
unnesting(before,['pct','Source']).eval('Count=Count*pct')
Out[395]:
pct Source Billing Line Count Day
0 0.45 a abcdefg 450.0 1
0 0.55 b abcdefg 550.0 1
1 0.45 a abcdefg 900.0 2
1 0.55 b abcdefg 1100.0 2