0
私はパンダには新しく、クラスにも使っていますが、パンダには精通していません。パンダ集計
のは、私のようなデータフレームを持っているとしましょう:
accord = pd.Series({'Manufacturer' : 'Honda',
'Model' : 'Accord',
'Drivetrain': 'FWD'})
civic = pd.Series({'Manufacturer' : 'Honda',
'Model' : 'Civic',
'Drivetrain': 'FWD'})
focus = pd.Series({'Manufacturer' : 'Ford',
'Model' : 'Focus',
'Drivetrain': 'FWD'})
mustang = pd.Series({'Manufacturer' : 'Ford',
'Model' : 'Mustang',
'Drivetrain': 'RWD'})
cars_df = pd.DataFrame([accord, civic, focus, mustang])
そして、私は最終的に取得しようとしているが、合計各メーカーのモデルとどのように多くの彼らが作る前輪駆動車を含むリストです。
だから、私はシリーズを引き出し、新しいデータフレームを作る:
manufacturer_s = cars_df['Manufacturer'].unique()
manufacturer_df = pd.DataFrame(index=manufacturer_s)
私は私が求める情報のための空の列を追加します
manufacturer_df['FWD MODEL COUNT'] = 0
manufacturer_df['MODEL COUNT'] = 0
をそして、私は移入する「iterrows」を使用このデータを次のように
for manufacturer, row in manufacturer_df.iterrows():
row['MODEL COUNT'] =
len(cars_df[cars_df['Manufacturer'] == manufacturer])
row['FWD MODEL COUNT'] =
len(cars_df[(cars_df['Manufacturer'] == manufacturer) &
(cars_df['Drivetrain'] == 'FWD')])
は今、私の出力は次のようになります。
FWD MODEL COUNT MODEL COUNT
Honda 2 2
Ford 1 2
(編集:私はタイプミスを見つけたので、この部分はうまくいきます)今は冗長で(しかも潜在的に遅いですが)、それほど「パンダエスク」は感じません。
はまた、私は次のことを試してみました:
まったく動作しない...だから、私は(さらに)これとどのように行う必要がありますmanufacturer_df['MODEL COUNT'] = manufacturer_df.apply(lambda car:
len(cars_df[cars_df['Manufacturer'] == car.index]), axis=1)
manufacturer_df['FWD MODEL COUNT'] = manufacturer_df.apply(lambda car:
len(cars_df[(cars_df['Manufacturer'] == car.index) &
(cars_df['Drivetrain'] == 'FWD')]), axis=1)
私が間違って何をやっていますか?
あなたはおそらく*合計*代わりに* lenを*します。それについて考えてみてください。 –