Разделение значения словаря на два столбца данных на основе запятой в значении - PullRequest
0 голосов
/ 29 апреля 2019

Привет, у меня есть словарь ниже,

Я хочу разделить значение словаря на два на основе запятой, присутствующей в значении словаря, а затем сохранить результат в новом кадре данных следующим образом:

Для конкретной словарной статьи, скажем, первая в нашем случае:

(1, 5) - это ключ, и должен быть столбец 1 в новом кадре данных (2,) - это значение извлекается из значения (перед запятой) и должно быть столбцом 2 в кадре данных 1.0 - это значение извлекается из значения (после запятой) и должно быть столбцом 3 в кадре данных

Один и тот же процесс должен быть повторен для всех (в данном случае 4) пар ключ-значение в словаре.

Если rules - это название словаря, Я знаю, что могу получить доступ к rules.keys () и rules.values ​​(), но я не понимаю, как мне получить доступ к значениям с разделением запятыми в словаре, потому что, когда я пытаюсь что-то вроде rules.values ​​() [1] выдает ошибку.

{(1, 5): ((2,), 1.0),
 (2, 5): ((1,), 1.0),
 (4,): ((2,), 1.0),
 (5,): ((1, 2), 1.0)}

Выход DF:

Col 1       Col2        Col3
(1, 5)      (2,)        1.0
(2, 5)      (1,)        1.0
(4,)        (2,)        1.0
(5,)        (1, 2)      1.0

1 Ответ

1 голос
/ 30 апреля 2019

Использование списка понимания.

Пример:

import pandas as pd

data = {(1, 5): ((2,), 1.0), (2, 5): ((1,), 1.0), (5,): ((1, 2), 1.0), (4,): ((2,), 1.0)}
df = pd.DataFrame([[k] + list(v) for k, v in data.items()], columns=["Col_1", "Col_2", "Col_3"])
print(df)

Выход:

    Col_1   Col_2  Col_3
0  (1, 5)    (2,)    1.0
1  (2, 5)    (1,)    1.0
2    (5,)  (1, 2)    1.0
3    (4,)    (2,)    1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...