Python вложенного цикла Dataframe

Я хотел выполнить расчет суммарных затрат, используя значения для 1 Вт, страны и автомобилей 0, и добавить это к 1 млн автомобилей 0, сделав то же самое для автомобилей 1,2, ..., 10. затем проделал то же самое для 1W и 3M и т. д. Я использовал вложенные циклы, как показано ниже в коде, но это занимает слишком много времени. Есть ли возможность использовать непосредственно панды вместо выполнения вложенных циклов?

Комбинация должна быть такой:

USD:
1W and 1M
1W and 3M
1W and 6M
1W and 1Y

and
1M and 3M
1M and 6M
1M and 1Y

and
3M and 6M
3M and 1Y

and
6M and 1Y
import pandas as pd

csv_loader = pd.read_csv('Cars.csv', encoding='cp1252', sep=';', index_col=0).dropna()

for current_date in csv_loader.index.unique():
    print('calculating date: ' +str(current_date))
    for index, row in index_data.iterrows():
        if index == current_date:

            for index2, row2 in index_data.iterrows():
                if index2 == current_date:

Мой CSV-файл выглядит следующим образом:

fact_date;Cars;Costs;Country;Car;Rental_Duration
2017-07-14;0;157.00;USD;Ford;1W
2017-07-14;1;122.00;USD;Ford;1W
2017-07-14;2;122.00;USD;Ford;1W
2017-07-14;3;102.00;USD;Ford;1W
2017-07-14;4;153.00;USD;Ford;1W
2017-07-14;5;130.00;USD;Ford;1W
2017-07-14;6;151.00;USD;Ford;1W
2017-07-14;7;132.00;USD;Ford;1W
2017-07-14;8;153.00;USD;Ford;1W
2017-07-14;9;191.00;USD;Ford;1W
2017-07-14;10;131.00;USD;Ford;1W
2017-07-14;0;571.00;USD;Ford;1M
2017-07-14;1;526.00;USD;Ford;1M
2017-07-14;2;568.00;USD;Ford;1M
2017-07-14;3;546.00;USD;Ford;1M
2017-07-14;4;593.00;USD;Ford;1M
2017-07-14;5;541.00;USD;Ford;1M
2017-07-14;6;536.00;USD;Ford;1M
2017-07-14;7;532.00;USD;Ford;1M
2017-07-14;8;537.00;USD;Ford;1M
2017-07-14;9;582.00;USD;Ford;1M
2017-07-14;10;523.00;USD;Ford;1M
2017-07-14;0;679.00;USD;Ford;3M
2017-07-14;1;641.00;USD;Ford;3M
2017-07-14;2;622.00;USD;Ford;3M
2017-07-14;3;654.00;USD;Ford;3M
2017-07-14;4;655.00;USD;Ford;3M
2017-07-14;5;635.00;USD;Ford;3M
2017-07-14;6;623.00;USD;Ford;3M
2017-07-14;7;678.00;USD;Ford;3M
2017-07-14;8;689.00;USD;Ford;3M
2017-07-14;9;694.00;USD;Ford;3M
2017-07-14;10;625.00;USD;Ford;3M
2017-07-14;0;726.00;USD;Ford;6M
2017-07-14;1;718.00;USD;Ford;6M
2017-07-14;2;770.00;USD;Ford;6M
2017-07-14;3;793.00;USD;Ford;6M
2017-07-14;4;704.00;USD;Ford;6M
2017-07-14;5;739.00;USD;Ford;6M
2017-07-14;6;785.00;USD;Ford;6M
2017-07-14;7;701.00;USD;Ford;6M
2017-07-14;8;718.00;USD;Ford;6M
2017-07-14;9;714.00;USD;Ford;6M
2017-07-14;10;788.00;USD;Ford;6M
2017-07-14;0;992.00;USD;Ford;1Y
2017-07-14;1;935.00;USD;Ford;1Y
2017-07-14;2;981.00;USD;Ford;1Y
2017-07-14;3;955.00;USD;Ford;1Y
2017-07-14;4;920.00;USD;Ford;1Y
2017-07-14;5;978.00;USD;Ford;1Y
2017-07-14;6;943.00;USD;Ford;1Y
2017-07-14;7;911.00;USD;Ford;1Y
2017-07-14;8;969.00;USD;Ford;1Y
2017-07-14;9;922.00;USD;Ford;1Y
2017-07-14;10;978.00;USD;Ford;1Y

Результат, который я ожидаю, будет следующим:

fact_date Cars    Costs_Total Car Country Rental_Duration
2017-07-14    0   728 Ford    USD 1W_1M
2017-07-14    1   648 Ford    USD 1W_1M
2017-07-14    2   690 Ford    USD 1W_1M
2017-07-14    3   648 Ford    USD 1W_1M
2017-07-14    4   746 Ford    USD 1W_1M
2017-07-14    5   671 Ford    USD 1W_1M
2017-07-14    6   687 Ford    USD 1W_1M
2017-07-14    7   664 Ford    USD 1W_1M
2017-07-14    8   690 Ford    USD 1W_1M
2017-07-14    9   773 Ford    USD 1W_1M
2017-07-14    10  654 Ford    USD 1W_1M
2017-07-14    0   836 Ford    USD 1W_3M
2017-07-14    1   763 Ford    USD 1W_3M
2017-07-14    2   744 Ford    USD 1W_3M
2017-07-14    3   756 Ford    USD 1W_3M
2017-07-14    4   808 Ford    USD 1W_3M
2017-07-14    5   765 Ford    USD 1W_3M
2017-07-14    6   774 Ford    USD 1W_3M
2017-07-14    7   810 Ford    USD 1W_3M
2017-07-14    8   842 Ford    USD 1W_3M
2017-07-14    9   885 Ford    USD 1W_3M
2017-07-14    10  756 Ford    USD 1W_3M
2017-07-14    0   883 Ford    USD 1W_6M
2017-07-14    1   840 Ford    USD 1W_6M
2017-07-14    2   892 Ford    USD 1W_6M
2017-07-14    3   895 Ford    USD 1W_6M
2017-07-14    4   857 Ford    USD 1W_6M
2017-07-14    5   869.00  Ford    USD 1W_6M
2017-07-14    6   936.00  Ford    USD 1W_6M
2017-07-14    7   833.00  Ford    USD 1W_6M
2017-07-14    8   871.00  Ford    USD 1W_6M
2017-07-14    9   905.00  Ford    USD 1W_6M
2017-07-14    10  919.00  Ford    USD 1W_6M

Вы спрашиваете, можно ли условно фильтровать фрейм данных на основе значений столбцов? Например: df[df['Rental_Duration'].isin(['1W','3M'])]

rahlf23 15.08.2018 20:06

это не дает прямого ответа на ваш вопрос, но, насколько я понимаю, вы можете изменить Rental_Duration на Rental_Start с датой начала и рассчитать продолжительность на лету

XoXo 15.08.2018 20:07

@ rahlf23, нет, я хотел еще получить сумму затрат на аренду продолжительностью 1 Вт и 1 М и т. д., а затем сохранить ее. Это понятнее?

MCM 16.08.2018 08:04

@JeffXiao, нет, я хотел бы получить сумму затрат на аренду продолжительностью 1 Вт и 1 М и т. д., А затем сохранить ее. Это понятнее?

MCM 16.08.2018 08:04
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
61
0

Другие вопросы по теме