Панды / Python добавить строку в зависимости от условия - PullRequest
0 голосов
/ 02 апреля 2020
 YY_MM_CD customerid pol_no    type   WE   WP 
2019-07   15680      1313145    new    3     89     
2020-01   14672      1418080    renwd  -8    223     
2019-01   15681      1213143    new    4      8      
2019-01   15683      1213344    new    -6     3
2019-03   14678      1418280    renwd  -66    -7

Сейчас. У меня есть несколько х лет данных, и я беру снимок 19-20. Предположим, что если клиент в этом снимке заплатил премию 01/11/2019, то клиент не заплатил премию 01/11/2020, так что запись будет не в их данных. Мне нужно создать фиктивную запись для этого клиента. Нравится этот идентификатор клиента 15681 и оставьте его WE и WP равными 0 0, так как клиент не заплатил

YY_MM_CD customerid pol_no    type    WE     WP
2019-07  15680      1313145    new     3     89
2020-01  14672      1418080    renwd  -8    223
2019-01  15681      1213143    new     4      8
2020-01  15681      1213143    new     0      0
2019-03  14678      1418280    renwd  -66    -7  

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Если вы хотите сделать то, что вы просили (добавить строку или столбец на основе условия):

  1. Вам необходимо сгруппировать клиентов
  2. Используйте лямбда-функцию для добавьте ваше условие

Например.

    new_df = pd.DataFrame()
    df = YOURDATA
    groups = df.groupby("customerid")
    for group in groups: 
        if len(group) < 2: #your condition
           df2 = pd.DataFrame( ADD YOUR DATA HERE)
           new_df.append(df2, ignore_index=True)

в конце вы можете объединить new_df и df с concat: https://pandas.pydata.org/pandas-docs/stable/user_guide/merging.html

0 голосов
/ 02 апреля 2020

Не создавайте фиктивную точку данных. Напишите дату окончания срока действия рядом с каждым идентификатором клиента. Затем при доступе к данным просто проверьте, если текущие данные до истечения срока годности.

Проще и чище

...