熊猫数据框到YAML

时间:2020-03-25 08:47:34

标签: json pandas yaml

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

在熊猫中,我可以使用数据透视表获取此结构

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(以熊猫方式!)以实现以下格式:

 - 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

我发现执行此操作的一种方法是执行 df.iterrows(),然后将数据手动处理到字典中,然后再处理到Yaml,但我只是不喜欢这种方法-必须有更多方法做到这一点的优雅的“熊猫”方式:-)

任何帮助将不胜感激。

0 个答案:

没有答案