Перемещение процентов на Python - Панды - PullRequest
0 голосов
/ 15 февраля 2019

предположим, у меня есть следующая таблица (заголовки - это дни, а 100 - суммы)

Мне нужно создать распределение [50%, 30% и 20%] сумм на следующий день.

Любые предложения приветствуются.

import pandas as pd

d = {'0': [100], '1': [100], '2': [100], '3': [100]}
df = pd.DataFrame(data=d)
df 

    0   1   2   3
0   100 100 100 100

d = {'0': [0,0,0,0], '1': [50,0,0,0], '2': [30,50,0,0], '3': [20,30,50,0], '4': [0,20,30,50],'5': [0,0,20,30],'6': [0,0,0,20]}
df = pd.DataFrame(data=d)
df

    0   1   2   3   4   5   6
0   0   50  30  20  0   0   0
1   0   0   50  30  20  0   0
2   0   0   0   50  30  20  0
3   0   0   0   0   50  30  20

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Вот что я искал:

import pandas as pd

d = {'dia': [1,2,3,4,5], 'monto': [100,100,100,100,100]}
df = pd.DataFrame(data=d)

ratios=[0.5,0.3,0.2]

my_new_list = []
for i, monto in enumerate(df['monto']):
    dias=[0]*(i+1)
    montos = [r * monto for r in ratios]
    montos.extend(dias)
    montos.sort(reverse = False) 
    my_new_list.append(montos)


my_new_list
0 голосов
/ 18 февраля 2019

вы должны использовать параметр float для запуска на каждой строке. df ["DAY"]. Astype (float) и затем вы можете делать обычные математические вычисления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...