딕셔너리 파일에서 key 값이 같은 것끼리 더하거나 곱해주고 싶어요

조회수 737회
P1 {'amphibolite.txt': 0.00593448307396262, 'basalt.txt': 0.00513281304394720, 'breccia.txt': 0.00501607343520665}
P2 {}
P3 {'amphibolite.txt': 0.00484181658252891, 'siltstone.txt': 0.00486999982527626}
P4 {'amphibolite.txt': 0.00489936166850968, 'siltstone.txt': 0.00494558784770914}

[{'amphibolite.txt': 0.00593448307396262, 'basalt.txt': 0.00513281304394720, 'breccia.txt': 0.00501607343520665}, {}, {'amphibolite.txt': 0.00484181658252891, 'siltstone.txt': 0.00486999982527626}, {'amphibolite.txt': 0.00489936166850968, 'siltstone.txt': 0.00494558784770914}]

아래는 P1~P4의 딕셔너리 파일을 합해서 inventory라는 것으로 묶은 것입니다. 저렇게 나온 값들중에 amphibolite.txt와 같이 동일한 key값이 있는 딕셔너리에서 key 값이 같은 value들을 더해서 하나의 key로 써 표현하고 싶습니다. 도와주세요

1 답변

  • pandas 가 아주 편합니다.

    >>> import pandas as pd
    
    >>> df = pd.DataFrame([{'amphibolite.txt': 0.00593448307396262, 'basalt.txt': 0.00513281304394720, 'breccia.txt': 0.00501607343520665}, {}, {'amphibolite.txt': 0.00484181658252891, 'siltstone.txt': 0.00486999982527626}, {'amphibolite.txt': 0.00489936166850968, 'siltstone.txt': 0.00494558784770914}])
    >>> df
       amphibolite.txt  basalt.txt  breccia.txt  siltstone.txt
    0         0.005934    0.005133     0.005016            NaN
    1              NaN         NaN          NaN            NaN
    2         0.004842         NaN          NaN       0.004870
    3         0.004899         NaN          NaN       0.004946
    >>> df.info()
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 4 entries, 0 to 3
    Data columns (total 4 columns):
    amphibolite.txt    3 non-null float64
    basalt.txt         1 non-null float64
    breccia.txt        1 non-null float64
    siltstone.txt      2 non-null float64
    dtypes: float64(4)
    memory usage: 208.0 bytes
    >>> df.describe()
           amphibolite.txt  basalt.txt  breccia.txt  siltstone.txt
    count         3.000000    1.000000     1.000000       2.000000
    mean          0.005225    0.005133     0.005016       0.004908
    std           0.000615         NaN          NaN       0.000053
    min           0.004842    0.005133     0.005016       0.004870
    25%           0.004871    0.005133     0.005016       0.004889
    50%           0.004899    0.005133     0.005016       0.004908
    75%           0.005417    0.005133     0.005016       0.004927
    max           0.005934    0.005133     0.005016       0.004946
    >>> df.sum()
    amphibolite.txt    0.015676
    basalt.txt         0.005133
    breccia.txt        0.005016
    siltstone.txt      0.009816
    dtype: float64
    >>> df.product()
    amphibolite.txt    1.407767e-07
    basalt.txt         5.132813e-03
    breccia.txt        5.016073e-03
    siltstone.txt      2.408501e-05
    dtype: float64
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)