Pandas DataFrame to YAML - PullRequest
       1

Pandas DataFrame to YAML

1 голос
/ 25 марта 2020

G'day!

Я пытаюсь найти лучший способ конвертировать следующие данные из фрейма данных в YAML.

Region    Country State       City      County    Address        Rep
0   AMER        USA    CA       Brea      Orange   Street 1      Mr. X
1   AMER        USA    CA       Brea      Orange   Street 2      Mr. Y
2   AMER        USA    CA       Brea      Orange   Street 3   Mrs. Doe
3   AMER        USA    CA       Brea  Buena Park   Street 1   Person 1
4   AMER        USA    CA       Brea  Buena Park   Street 2   Person 2
5   AMER        USA    CA       Brea  Buena Park   Street 3   Person 3
6   AMER        USA    NY        NYC       Bronx  Street 40   Person 4
7   EMEA         UK     -     London        Kent  Street 10  Mrs. Jane
8   APAC  Singapore     -  Singapore      Sabana  Street 20    Mrs. Xi

В pandas я могу использовать pivot таблица, чтобы получить эту структуру

df.pivot_table(index=['Region','Country','State','City','County','Address'],aggfunc='first')


                                                             Rep
Region Country   State City      County     Address
AMER   USA       CA    Brea      Buena Park Street 1    Person 1
                                            Street 2    Person 2
                                            Street 3    Person 3
                                 Orange     Street 1       Mr. X
                                            Street 2       Mr. Y
                                            Street 3    Mrs. Doe
                 NY    NYC       Bronx      Street 40   Person 4
APAC   Singapore -     Singapore Sabana     Street 20    Mrs. Xi
EMEA   UK        -     London    Kent       Street 10  Mrs. Jane`

Но как мне передать это в YAML (Pandas способом!), чтобы получить следующий формат:

 - Region: AMER
   - Country: USA
   - State: 
    - NY:
      - City:
        - NYC:
          - County: 
             - Bronx
          - Address:
            - Street40
          - Rep: 
            - Person 4
    - CA:
      - City:
        - Brea:
        - County:
          - Orange
          - Buena Park
        - Address:
          - Street 1
          - Street 2
          - Street 3
          - Street 1
          - Street 2
          - Street 3
          - Street 4
        - Rep:
          - Mr. X
          - Mr. Y
          - Mrs. Doe
          - Person 1
          - Person 2
          - Person 3

Один способ I обнаружил, что это делает df.iterrows () , а затем обрабатывает данные вручную в словарь, а затем в yaml, но мне просто не нравится этот подход - должен быть более элегантный способ 'pandas' делать это, если это имеет смысл :-)

Любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...