Создать новые столбцы на основе ключевого столбца и столбца значений - PullRequest
1 голос
/ 23 сентября 2019

У меня есть два ключа столбцов и значений (унаследованный устаревший плохой дизайн), я хочу разбить эти столбцы на несколько других столбцов в зависимости от ключевого столбца и использовать значение в качестве значения в строке.

| Key                         | Value                       |
|-----------------------------|-----------------------------|
| .                           | None                        |
| Review Required?            | Yes                         |
| Installed?                  | No                          |
| Required Publish?           | No                          |
| Published?                  | Yes                         |
| Published?                  | No                          |
| Consult Required?           | Yes                         |
| IS Catalog Reference        | Null                        |
| License Review Required?    | No                          |

Я пробовал что-то подобное, но это не сработало

  df.loc[~df['Key'].isnull()]
 .apply(lambda cols: pd.DataFrame({cols['Key']:cols['Value']},index=[1]),axis=0)

Образец того, что я хочу в результате:

| Review Required? | Installed?  | Required Publish? | Published?   | Published?  |
|------------------|-------------|-------------------|--------------|-------------|
|  Yes             | None        | None              | None         | None        |
| None             |          No | None              | None         | None        |
| None             | None        |  No               | None         | None        |
| None             | None        | None              |          Yes | None        |
| None             | None        | None              | None         |          No |

Это происходит много раз, а нетолько за да или нет.Заранее спасибо.

1 Ответ

1 голос
/ 23 сентября 2019

Используйте DataFrame.dropna для удаления строк с пропущенными значениями, добавьте Key для индексации и изменения формы на Series.unstack:

df = df.dropna(subset=['Key']).set_index('Key', append=True)['Value'].unstack()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...