1. 学ぶ
  2. /
  3. コース
  4. /
  5. Python 中級

Connected

演習

列を追加する (2)

Pandas の DataFrame の各観測値を iterrows() で反復処理する方法はわかりやすいですが、効率はあまりよくありません。各イテレーションで新しい Pandas Series を作成しているためです。

別の列に関数を適用して DataFrame に列を追加したい場合、for ループと組み合わせた iterrows() は推奨される方法ではありません。代わりに apply() を使いましょう。

同じ結果を brics DataFrame で得るために、iterrows() 版と apply() 版を比較してみます。

for lab, row in brics.iterrows() :
    brics.loc[lab, "name_length"] = len(row["country"])

brics["name_length"] = brics["country"].apply(len)

同様に、country 列のすべての名前に対して upper() メソッドを呼び出すこともできます。ただし、upper() はメソッドなので、少し違うアプローチが必要です。

指示

100 XP
  • for ループを .apply(str.upper) を使ったワンライナーに置き換えてください。同じ結果、つまり国名を大文字にしたものを含む COUNTRY 列が cars に追加されるようにします。
  • いつも通り、がんばった成果を確認するために cars を出力してください