>

이것과 같은 데이터 프레임이 있다고 가정 해 봅시다.

        REFERENCE_CODE                                        TRANSLATION
0            ladder_now                                                NaN
1                     0                                              xyzwu
2                     1                                              yxzuv
3                     2                                            asdfasd
4                     3                                             sdfsdh
5                     4                                             hghffg
6                     5                                            agfdhsj
7                     6                                            dfgasgf
8                     7                                             jfhkgj
9                     8                                           djfgjfhk
10                    9                                            dsfasys
11                   10                                            kghkfdy
12                   98                                          dsfhsuert
13                   99                                           wsdfadjs
14        country_satis  Sa pangkagab’san, aoogma po ba kamo o dai naoo...
15                    1                                            Naoogma
16                    2                                        Dai naoogma
17                    8                           Dai aram (HUWAG BASAHIN)
18                    9                           Huminabo (HUWAG BASAHIN)
19                                                                     NaN
20             econ_sit  Ngonyan naman po ay manongod sa sitwasyon kan ...
21                    1                                             Marhay
22                    2                                       Medyo marhay
23                    3                                       Medyo maraot
24                    4                                   Talagang maraot 
25                    8                         Hindi alam (HUWAG BASAHIN)
26                    9                           Tumanggi (HUWAG BASAHIN)
27                                                                     NaN
28  children_betteroff2  Sa pagdakula po kan mga aki ngonyan sa Pilipin...
29                    1                                         Mas marhay
30                    2                                         Mas maraot
31                    3                        Pareho lang (HUWAG BASAHIN)
32                    8                         Hindi alam (HUWAG BASAHIN)
33                    9                           Tumanggi (HUWAG BASAHIN)
34                                                                     NaN
35             fav_batt  Pakisabi po sakuya kon kamo ay may talagang ma...
36               fav_US                                  An Estados Unidos
37            fav_China                                              Tsina
38           fav_Russia                                             Russia
39               fav_eu                                 Ang European Union
40               fav_un                                ang United Nations 
41          fav_Germany                                       GEEEEERhmany
42             fav_NATO                                            NAAAATO
43                                                                     NaN
44                    1                                    Talagang marhay
45                    2                                       Medyo marhay
46                    3                                Medyo bakong marhay
47                    4                         Talagang\n bakong marhay\n
48                    8                         Hindi alam (HUWAG BASAHIN)
49                    9                           Tumanggi (HUWAG BASAHIN)

제 목표는 각 "일괄"에서 사전을 만드는 것입니다. 즉, 각 미니 시리즈에 다음과 같은 dict을 작성하고 싶습니다.

{'ladder_now': nan, '0': 'xyzwu', '1': 'yxzuv', '2': 'asdfasd', '3': 'sdfsdh', '4': 'hghffg', '5': 'agfdhsj', '6': 'dfgasgf', '7': 'jfhkgj', '8': 'djfgjfhk', '9': 'dsfasys', '10': 'kghkfdy', '98': 'dsfhsuert', '99': 'wsdfadjs'}
{'country_satis': 'Sa pangkagab’san, aoogma po ba kamo o dai naoogma sa mga bagay na nangyayari sa nasyon o bansa ta sa sangonyan?', '1': 'Naoogma', '2': 'Dai naoogma', '8': 'Dai aram (HUWAG BASAHIN)', '9': 'Huminabo (HUWAG BASAHIN)', '': nan}

등.

현재 다음을 실행하여이 dict을 만들고 있습니다 :

ref_dict = dict(zip(df['REFERENCE_CODE'], df['TRANSLATION']))

제 질문은 값 (즉, 0,1,2,3, ...)이 고유하지 않기 때문에 전체 데이터 프레임 에서이 dict 명령을 실행하여 덮어 씁니다. 어쨌든 각 배치에 대해 동적으로 dict를 만들 수 있습니까?

미리 감사합니다!

  • 답변 # 1

    제너레이터를 사용하여 이러한 dict을 얻을 수 있습니다. 첫 번째 복제 키가 감지되는 즉시 새 받아쓰기가 생성됩니다.

    import pandas as pd
    helper = {'REFERENCE_CODE': ['ladder_now', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 98, 99, 'country_satis', 1, 2, 8, 9, '', 'econ_sit', 1], 
              'TRANSLATION': ['NaN', 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqr', 'stu', 'vwx', 'yz', 'NaN', 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqr', 'stu', 'vwx', 'yz', 'NaN', 'NaN']}
    df = pd.DataFrame(helper)
    def dict_generator(df):
        seen = {}
        for _, rows in df.iterrows():
            if rows[0] in seen:
                yield seen
                seen.clear()
            seen[rows[0]] = rows[1]
        yield seen
    for adict in dict_generator(df):
        print(adict)
    
    

    이 출력을 생성해야합니다 :

    {0: 'abc', 1: 'def', 2: 'ghi', 3: 'jkl', 4: 'mno', 5: 'pqr', 6: 'stu', 7: 'vwx', 8: 'yz', 9: 'NaN', 10: 'abc', 'country_satis': 'jkl', 98: 'def', 99: 'ghi', 'ladder_now': 'NaN'}
    {'': 'yz', 1: 'mno', 2: 'pqr', 'econ_sit': 'NaN', 8: 'stu', 9: 'vwx'}
    {1: 'NaN'}
    
    

    Python은 dicts가 비 순차적 데이터 구조이므로 순서가 다를 수 있습니다.

관련 자료

  • 이전 mysql - 문자열 대신 목록을 삽입 할 수 있습니까?
  • 다음 Mice.2L.Norm의 "클래스 변수 없음"오류가 발생했습니다