Как разделить столбец с несколькими значениями в разных строках с одинаковыми ключами в python - PullRequest
1 голос
/ 18 июня 2020

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

df = pd.DataFrame(
   {'name': ["apple", "orange", "banana"],
    'attr': ["yeoolw, red, white", "red", "yellow, black"]
   }
)
df.head()

, и мне нужно получить что-то вроде:

df_new = pd.DataFrame(
    {'name': ["apple", "apple","apple","orange", "banana","banana"],
     'attr': ["yeoolw", "red", "white", "red", "yellow", "black"]
    }
)
df_new.head(6)

очевидно, что существует много разных случаев, единственное правило состоит в том, что в конце я должен получить базу данных только с одним атрибутом для каждого имени и повторить имя, где есть несколько атрибутов по порядку Чтобы не пропустить информацию, может ли кто-нибудь предложить мне лучшее и менее затратное по времени решение этой проблемы?

Большое спасибо за вашу помощь

1 Ответ

1 голос
/ 18 июня 2020

Для pandas 0,25+ вы можете связать explode с str.split():

df.assign(attr=df['attr'].str.split(',\s*')).explode('attr')

Вывод:

     name    attr
0   apple  yeoolw
0   apple     red
0   apple   white
1  orange     red
2  banana  yellow
2  banana   black
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...