Как создать фрейм данных из 2 столбцов из списка? - PullRequest
0 голосов
/ 06 января 2019

Я хочу создать фрейм данных из 2 столбцов из списка. Список содержит: названия штатов и регионов по порядку Штаты - это те, которые имеют «edit» перед своими именами, а другие слова - это названия регионов Например, здесь штат Алабама, а ее регионы называются Оберн, Флоренция, ... пока мы не достигнем второго штата - Аляски.

['Alabama[edit]',
 'Auburn',
 'Florence',
 'Jacksonville',
 'Livingston',
 'Montevallo',
 'Troy',
 'Tuscaloosa',
 'Tuskegee',
 'Alaska[edit]',
 'Fairbanks',
 'Arizona[edit]',
 'Flagstaff',
 'Tempe',
 'Tucson',
 'Arkansas[edit]',
 'Arkadelphia',
....

И столбцами фрейма данных будут имена государств и регионов.

enter image description here

Вот мой код:

    for i in range(len(list)):
    if 'edit' in list[i]:
        university['state'][i:]=re.sub('\[.+','',list[i])
    else:
        university['regionName'][i]=list[i]

1 Ответ

0 голосов
/ 06 января 2019

Предварительно обработайте информацию, чтобы составить список кортежей из (state,region) имен. Используйте это для построения DataFrame

names =  ['Alabama[edit]',
          'Auburn',
          'Florence',
          'Jacksonville',
          'Livingston',
          'Montevallo',
          'Troy',
          'Tuscaloosa',
          'Tuskegee',
          'Alaska[edit]',
          'Fairbanks',
          'Arizona[edit]',
          'Flagstaff',
          'Tempe',
          'Tucson',
          'Arkansas[edit]',
          'Arkadelphia']


data = []
state = None
for name in names:
    name = name.strip()
    if name.endswith('[edit]'):
        state = name[:-6]
        continue
    if not state:     # In case the first name of the list is not a state
        state = 'Unknown'
    data.append((state,name))

df = pd.DataFrame(data)

>>> df
           0             1
0    Alabama        Auburn
1    Alabama      Florence
2    Alabama  Jacksonville
3    Alabama    Livingston
4    Alabama    Montevallo
5    Alabama          Troy
6    Alabama    Tuscaloosa
7    Alabama      Tuskegee
8     Alaska     Fairbanks
9    Arizona     Flagstaff
10   Arizona         Tempe
11   Arizona        Tucson
12  Arkansas   Arkadelphia
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...