pandasで以下のようなデータフレームを作りました。
columnは各不動産に付いているオーブン名、行にはそれがあるかないか(0は設備なし、1は設備あり)を示しています。
当方はオーブンの特徴、メーカー等には関心がなく、単純にあるかないか分岐したく、一番左に有無を示す「Oven_Total」を出すようにしました。
df_lodge['Oven_Total'] =df_lodge.sum(axis=1)
column名以外は、0または1しかデータはないため、['Oven_Total']にオーブンがあるかないかが分かると思ったためです。
ここで1不動産に1つしかオーブン有りのサインが立てばよいのですが、上手くクレンジングするスキルがまだ当方にはないため、Oven_Totalが1超の場合は、1をセットする、そうでない場合は、数値更新なし、としたく、構文してみました。
なお、df_lodge['Oven_Total']のデータタイプは、
dtype('int64')
となっています。
〔対応1〕
df_loge['Oven_Total']=df_lodge.loc[[df_lodge['Oven_Total']>1,'Oven_Total']==1]
結果
'int' object has no attribute 'loc'
〔対応2〕
df_lodge['Oven_Total']=df_lodge['Oven_Total'].mask(df_lodge['Oven_Total']>1,1)
結果
'int' object is not subscriptable
対応1はブールインデックス参照という説明がネットがあり、括弧が多く内容は理解できていませんが、データタイプがint64であるにも関わらず、前記のような結果となりました。
対応2は、条件判定でTrueの場合の対応を引数で記載する、Falseの場合はデータ更新なし、とネットにありましたので、真似して組んでみましたが、こちらも前記のようなエラーとなりました。
EXCELでやれば瞬時に終わる内容ですが、pandasではそうも行かず、苦慮しています。
初歩的な内容の質問ばかりで心苦しいのですが、ご教授いただけますよう、お願い申し上げます。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/24 15:04
2022/01/24 15:09
2022/01/24 15:48
2022/01/24 15:54
2022/01/24 15:59
2022/01/24 16:01
2022/01/24 16:34