Заполнение столбцов - PullRequest
       17

Заполнение столбцов

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

У меня есть следующие данные:

1)

1 1
1 3
1 5
2 1
2 2

Мне нужно заполнить пропущенные строки следующим образом:

1 1
1 2
1 3
1 4
1 5
2 1
2 2

После чего мне нужно заполнить новый столбец, чтобы новые строки имели ноль, а старые строки - 1, например:

1 1 1
1 2 0
1 3 1
1 4 0
1 5 1
2 1 1
2 2 1

После чего мне пришлось бы перенести последний столбец в строку. вот так:

1,0,1,0,1,1,1

Я застрял на первом этапе, не зная, как проверить и заполнить записи, поэтому я не могу дать вам пример моей работы ... Спасибо за вашу помощь!

1 Ответ

1 голос
/ 18 февраля 2020

IIU C:

import pandas as pd
import numpy as np

df=pd.DataFrame({"x": [1,1,1,2,2], "y": [1,3,5,1,2]})

df["rep"]=np.where(df["y"].lt(df["y"].shift(-1)),df["y"].shift(-1).sub(df["y"]).sub(1), 0)

df=df.loc[df.index.repeat(df["rep"].add(1))]

df["y"]=df["y"].add(df.groupby(level=0)["y"].cumcount())

df["rep"]=df.groupby(level=0)["y"].cumcount().lt(1).astype(int)

df=df.reset_index(drop=True)

И выход, который вы ищете:

>>> print(df["rep"].T.tolist())
[1, 0, 1, 0, 1, 1, 1]

>>> print(df)
   x  y  rep
0  1  1    1
1  1  2    0
2  1  3    1
3  1  4    0
4  1  5    1
5  2  1    1
6  2  2    1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...