94365


bandという辞書型配列があり、1つのキーが複数の値を持っています。  
この配列の各キー(Band 1, Band 2, Band 3)について、そのキーが持つ値の合計を算出したいです。出力したい結果のイメージを以下に示します。

[code]

    BandNum : Total
    Band 1 : 57468
    Band 2 : 65377
    Band 3 : 62070
    
[/code]

sum関数を用いて算出しようとしたのですが、以下のようなエラーが出ました。

[code]

    TypeError: unsupported operand type(s) for +: 'int' and 'list'
    
[/code]

"intとlist同士で+演算子を使っている"という意のエラーだと思うのですが、この解決方法が分かりません。  
ご教授のほどお願いいたします。

コードを以下に示します。

[code]

    import pandas as pd
    
    df = pd.read_fwf('Histogram1.txt', header=None, names=['Band', 'DN', 'Npts', 'Total', 'Percent', 'Acc Pct'])
    band = df.query('Band != "Histogram"').ffill().astype({'DN': int, 'Npts': int, 'Total': int, 'Percent': float, 'Acc Pct': float})\
             .groupby('Band').apply(lambda x: x['DN'].repeat(x['Npts']).to_list()).to_dict()
    
    print(band)
    
    result = sum(band.values())
    
    print(result)
    
[/code]

初めに読み込んでいる"Histogram1.txt"ファイルを以下に示します。

[code]

    Histogram       DN     Npts    Total   Percent   Acc Pct
    Band 1         178        1        1    0.3322    0.3322
                   179        2        3    0.6645    0.9967
                   180        3        6    0.9967    1.9934
                   181        6       12    1.9934    3.9867
                   182        8       20    2.6578    6.6445
                   183       10       30    3.3223    9.9668
                   184       10       40    3.3223   13.2890
                   185       11       51    3.6545   16.9435
                   186       10       61    3.3223   20.2658
                   187       21       82    6.9767   27.2425
                   188       25      107    8.3056   35.5482
                   189       26      133    8.6379   44.1860
                   190       23      156    7.6412   51.8272
                   191       20      176    6.6445   58.4718
                   192       20      196    6.6445   65.1163
                   193        9      205    2.9900   68.1063
                   194        8      213    2.6578   70.7641
                   195       13      226    4.3189   75.0831
                   196       19      245    6.3123   81.3953
                   197       11      256    3.6545   85.0498
                   198       12      268    3.9867   89.0365
                   199       12      280    3.9867   93.0233
                   200        6      286    1.9934   95.0166
                   201        3      289    0.9967   96.0133
                   202        6      295    1.9934   98.0066
                   203        4      299    1.3289   99.3355
                   204        2      301    0.6645  100.0000
    
    Histogram       DN     Npts    Total   Percent   Acc Pct
    Band 2         208        1        1    0.3322    0.3322
                   209        4        5    1.3289    1.6611
                   210        9       14    2.9900    4.6512
                   211       12       26    3.9867    8.6379
                   212       28       54    9.3023   17.9402
                   213       38       92   12.6246   30.5648
                   214       11      103    3.6545   34.2193
                   215       24      127    7.9734   42.1927
                   216       24      151    7.9734   50.1661
                   217       23      174    7.6412   57.8073
                   218       12      186    3.9867   61.7940
                   219       15      201    4.9834   66.7774
                   220       16      217    5.3156   72.0930
                   221       15      232    4.9834   77.0764
                   222       18      250    5.9801   83.0565
                   223       10      260    3.3223   86.3787
                   224       17      277    5.6478   92.0266
                   225       13      290    4.3189   96.3455
                   226        4      294    1.3289   97.6744
                   227        3      297    0.9967   98.6711
                   228        4      301    1.3289  100.0000
    
    Histogram       DN     Npts    Total   Percent   Acc Pct
    Band 3         193        1        1    0.3322    0.3322
                   194        3        4    0.9967    1.3289
                   195        3        7    0.9967    2.3256
                   196        7       14    2.3256    4.6512
                   197        9       23    2.9900    7.6412
                   198       17       40    5.6478   13.2890
                   199        6       46    1.9934   15.2824
                   200       12       58    3.9867   19.2691
                   201       26       84    8.6379   27.9070
                   202       20      104    6.6445   34.5515
                   203       15      119    4.9834   39.5349
                   204       15      134    4.9834   44.5183
                   205       14      148    4.6512   49.1694
                   206       16      164    5.3156   54.4850
                   207       18      182    5.9801   60.4651
                   208       14      196    4.6512   65.1163
                   209       13      209    4.3189   69.4352
                   210        8      217    2.6578   72.0930
                   211       16      233    5.3156   77.4086
                   212        7      240    2.3256   79.7342
                   213       14      254    4.6512   84.3854
                   214       16      270    5.3156   89.7010
                   215        6      276    1.9934   91.6944
                   216        4      280    1.3289   93.0233
                   217        7      287    2.3256   95.3488
                   218        2      289    0.6645   96.0133
                   219        2      291    0.6645   96.6777
                   220        3      294    0.9967   97.6744
                   221        2      296    0.6645   98.3389
                   222        0      296    0.0000   98.3389
                   223        2      298    0.6645   99.0033
                   224        3      301    0.9967  100.0000
    
[/code]

辞書型配列bandを以下に示します(長いので一部省略しています)

[code]

    {'Band 1': [178, 179, 179, 180, 180, 180, 181, 181, 181,・・・省略・・・, 204, 204], 'Band 2': [208, 209, 209, 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, 210,・・・省略・・・, 228, 228, 228], 'Band 3': [193, 194, 194, 194, 195, 195, 195, 196, 196, 196, 196, 196, 196, 196, 197, 197, ・・・省略・・・, 224, 224, 224]}
    
[/code]


CC BY-SA 4.0
2023-03-28T21:22:12.720
94363
2023-03-29T02:27:13.890
2023-03-29T01:51:29.107
55619
55619
question
python
Pythonで同じキーの値(value)を足し算する方法

[code]

    import pandas as pd
    
    df = pd.read_fwf('Histogram1.txt', header=None, names=['Band', 'DN', 'Npts', 'Total', 'Percent', 'Acc Pct'])
    band = df.query('Band != "Histogram"').ffill().astype({'DN': int, 'Npts': int, 'Total': int, 'Percent': float, 'Acc Pct': float})\
             .groupby('Band').apply(lambda x: x['DN'].repeat(x['Npts']).to_list())
    
    result = band.apply(sum).to_dict()
    print(result)
    
    # {'Band 1': 57468, 'Band 2': 65377, 'Band 3': 62070}
    
    ##band = band.to_dict()
    ##print(band)
    
[/code]


CC BY-SA 4.0
2023-03-29T02:10:54.027
94365
2023-03-29T02:27:13.890
2023-03-29T02:27:13.890
47127
47127
94363
answer