Как предотвратить разбиение списков внутри dict на строки при преобразовании в DataFrame? - PullRequest
2 голосов
/ 21 мая 2019

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

a = {
  "url": "http://www.example.com",
  "list": ["abc", "def", "ghi"]
}
DataFrame(a)
*****Output*****
                      url list
0  http://www.example.com  abc
1  http://www.example.com  def
2  http://www.example.com  ghi

Что я пытаюсь достичь, это что-то вроде этого:

                      url             list
0  http://www.example.com  [abc, def, ghi]

Как получить предполагаемый результат?Я пытался преобразовать a["list"] в DataFrame, DataFrame(a, index=[0]) и другие идеи из Google, но ничего не работает.

Ответы [ 2 ]

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

Вы можете поместить свой список в список.

a = {
  "url": "http://www.example.com",
  "list": [["abc", "def", "ghi"]]
}
1 голос
/ 21 мая 2019

Метод 1

Используйте groupby и apply с функцией list, чтобы получить желаемый результат:

df.groupby('url')['list'].apply(list).reset_index()

                      url             list
0  http://www.example.com  [abc, def, ghi]

Метод 2

Использование функции aggregate

df.groupby('url', as_index=False).agg({'list':list})

                      url             list
0  http://www.example.com  [abc, def, ghi]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...