Как я могу удалить список в столбце при вызове pd.values - PullRequest
0 голосов
/ 06 мая 2019

У меня есть pd dataframe. Когда я звоню pd.values, результат выглядит так:

np.array([
    [1, 2, [0, 0, 0], 3],
    [1, 2, [0, 0, 0], 3]
])

и я хочу, чтобы при вызове pd.values:

это выглядело так
np.array([
    [1, 2, 0, 0, 0, 3],
    [1, 2, 0, 0, 0, 3]
])

Пожалуйста, помогите мне.

1 Ответ

2 голосов
/ 06 мая 2019

Предполагая, что ваш фрейм данных:

df = pd.DataFrame([
    [1, 2, [0, 0, 0], 3],
    [1, 2, [0, 0, 0], 3]
])

Я бы использовал информацию из этого поста @ wim , где я представляю измененную функцию ниже.

Этовыравнивает произвольно вложенные коллекции.

from collections import Iterable

def flatten(collection):
    for element in collection:
        if isinstance(element, Iterable) and not isinstance(element, str):
            yield from flatten(element)
        else:
            yield element

Затем я могу использовать это, чтобы сгладить каждую строку кадра данных:

pd.DataFrame([*map(list, map(flatten, df.values))])

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