Python初心者です。
ネットでいろいろ検索したのですが、いい情報が見つかりませんでした。
目的を達成するようなコードは書けましたが、
これよりいい方法がいくらでもあると思うので、どうか教えてください。
<やりたいこと>
・合計したい列はデータフレームの1列目。
・対象行は、指定列目以降全て。
(今回は2列目以降。)
・今はあえてprintにしてありますが、
最終的には以下のようなデータフレームを作るつもりです。
col1 col2 col3
101 0 1111
処理が早いことが優先ですが、
きれいでわかりやすいコードだとうれしいです。
どうぞよろしくお願いいたします。
Python
1import pandas as pd 2 3df = pd.DataFrame({'cnt': [1, 10, 100, 1000], 4 'col1': [1, 0, 1, 0], 5 'col2': [0, 0, 0, 0], 6 'col3': [1, 1, 1, 1]}) 7 8names = df.columns.values 9for x in range(1, len(df.columns)): 10 colname = names[x] 11 df2 = df[df[colname] == 1] 12 print(colname + ':' + str(df2['cnt'].sum()))
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/06 23:15