Home > Mobile >  how to convert the content from xlxs file to a list of lists in python using pandas?
how to convert the content from xlxs file to a list of lists in python using pandas?

Time:10-09

I have this data in an excel file (each line in a cell):

df = pd.read_excel("planilha.xlsx")
col_categorias = df['Categorias']

it returns

0                         wordpress, criação de sites
1                                    criação de sites
2             e-commerce, criação de sites, wordpress
3                           marketing digital, vendas
4     marketing digital, vendas, google ads, negócios
5                       marketing digital, google ads
6                        e-commerce, vendas, negócios
7                                    design, negócios
8                        youtube, criação de conteúdo
9              marketing digital, google ads, youtube
10                             programação, wordpress

I m trying to create a list of lists but i m getting all values together.

lista_categorias = col_categorias.tolist()

It returns

['wordpress, criação de sites', 'criação de sites', 'e-commerce, criação de sites, wordpress', 'marketing digital, vendas', 'marketing digital, vendas, google ads, negócios', 'marketing digital, google ads', 'e-commerce, vendas, negócios', 'design, negócios', 'youtube, criação de conteúdo', 'marketing digital, google ads, youtube', 'programação, wordpress']

The output should be:

lista_categorias = [
  ['wordpress', 'criação de sites'],
  ['criação de sites'],
  ['e-commerce', 'criação de sites', 'wordpress'],
  ['marketing digital', 'vendas'],
  ['marketing digital', 'vendas', 'google ads', 'negócios'],
  ['marketing digital', 'google ads'],
  ['e-commerce', 'vendas', 'negócios'],
  ['design', 'negócios'],
  ['youtube', 'criação de conteúdo'],
  ['marketing digital', 'google ads', 'youtube'],
  ['programação', 'wordpress']
]

thank you

CodePudding user response:

You can split the strings inside your list on the comma:

lista_categorias = [line.split(", ") for line in col_categorias.tolist()]

CodePudding user response:

You can use str.split() to split each line by comma into a list.

Then, use tolist() to make the overall list, as follows:

lista_categorias = df['Categorias'].str.split(r',\s*').tolist()

Result:

print(lista_categorias)

[['wordpress', 'criação de sites'],
 ['criação de sites'],
 ['e-commerce', 'criação de sites', 'wordpress'],
 ['marketing digital', 'vendas'],
 ['marketing digital', 'vendas', 'google ads', 'negócios'],
 ['marketing digital', 'google ads'],
 ['e-commerce', 'vendas', 'negócios'],
 ['design', 'negócios'],
 ['youtube', 'criação de conteúdo'],
 ['marketing digital', 'google ads', 'youtube'],
 ['programação', 'wordpress']]
  • Related