将Pandas数据框中的值拆分为值,并为新值创建行

时间:2019-03-27 20:01:04

标签: python-3.x pandas

我正在尝试按来源划分结算行的数量。帐单行数据量报告为一个值,但我知道其中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'}])

1 个答案:

答案 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