Как создать аккуратную таблицу из некрасивых строк данных? - PullRequest
0 голосов
/ 12 февраля 2020

Например, я импортировал набор данных из Excel, выглядит так: всего один столбец и несколько строк с повторяющейся информацией, такой как имя, телефон и заголовок:

таблица --------- 0 имя1 1 телефон1 2 title1 3 name2 4 phone2 5 title2 6 имя3 7 phone3 8 title3

И я хочу построить из этого таблицу с 3 столбцами name, phone, title и извлечь эту информацию в эту новую таблицу. такие как:

имя телефона название имя1 телефон1 название1 name2 phone2 title2

и такие ... Как мне подойти к этой проблеме? Я использую Python с Jupyter Notebook.

++ Итак, здесь все имя / телефон / название - это разные слова, например, имена могут быть Сарой Ким, Эндрю м. белый, майк есман. Телефон может быть 111-222-3333, 333-444-5555 и так далее. И у меня более 500 строк, поэтому моя первая попытка - использовать REGEX для разделения имени, телефона и заголовка. Я использую pandas dataframe, и я хотел научиться подходить к таким проблемам, а не просто получать код.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Вот решение без использования pandas (хотя pandas, вероятно, будет быстрее / эффективнее) :

data = ['name1', 'phone1', 'title1', 'name2', 'phone2', 'title2']

print("Name Phone Title")
for name, phone, title in zip(*[iter(data)]*3):
  print(name, phone, title)

Результат

Name Phone Title
name1 phone1 title1
name2 phone2 title2
0 голосов
/ 12 февраля 2020

Вы можете использовать pandas для создания базовой c таблицы. Определите каждую из ваших переменных, в этом случае, используя массив строк. Затем используйте pd.DataFrame для заголовка каждого столбца, а затем присвойте значения.

import pandas as pd

names = ('name1', 'name2')
phones = ('phone1', 'phone2')
titles = ('title1', 'title2')

example = pd.DataFrame({
    "Names": names,
    "Phones": phones,
    "Titles": titles,
})
example

Выход:

    Names   Phones  Titles
0   name1   phone1  title1
1   name2   phone2  title2
...