Custom Modifications
Coddyの「Pandas Analytics」コースのレッスン 13/19。
カスタムの修正を行うには、.applyメソッドを使用し、lambdaまたはfunctionを渡します。例えば、列の各数値の2乗を求めるには次のようにします。
df['num_squared'] = df['num'].apply(lambda x: x**2)これは、同じ列同士を掛け合わせることでも実現できます。
df['num_squared'] = df['num'] * df['num']各行の値に2を加算するには:
df["add_two"] = df['num'].apply(lambda x: x+2)
df["add_two"] = df['num'] + 2Series内の各値を別の値に置換するには、.mapメソッドを使用し、関数、辞書、またはSeriesを渡します。
例えば、果物の名前を数値に置き換えたい場合は次のようになります:
fruits_to_num = {"apple": 1, "mango": 2, "grape": 3}
df["fruits"] = df["fruits"].map(fruits_to_num).mapと.applyはどちらも関数を受け取ることができます:
df['num_squared'] = df['num'].apply(lambda x: x**2)
df['num_squared'] = df['num'].map(lambda x: x**2)それらの違いについて詳しく知るには、こちらをご覧ください。
チャレンジ
簡単CSVファイル stats.csv には、統計に関する情報が含まれています。
以下は、ファイルの最初の5行です:
ID,COUNTRY,COLOR,SKILL,SKILL_POINTS,UTILIZATION,IS_VALID,CATEGORY
1,France,Signal violet,marksmanship,14,0.1924,1,SHOW
2,Solomon Islands,Pearl violet,crocheting,4,0.6108,1,TREE
3,Germany,Bottle green,calligraphy,12,0.88646,0,SHOW
4,Mauritania,Fawn brown,paper cutting,9,0.058,1,JAPECATEGORYの値を{"SHOW": 0, "TREE": 1, "JAPE": 2, "GHUP": 3, "PLQR": 4}に置換してください。SKILL_MASTERYという名前の新しい列を作成します。この列に次の数式で値を入力してください:SKILL_POINTS列とUTILIZATION列の値を掛け合わせます。その結果が5より大きい場合は 4 で割り、そうでない場合は2で割ります。最後に、その結果にIS_VALID列の値を加算します。- 結果を
SKILL_MASTERYに基づいて昇順でソートしてください。
結果を df 変数に格納してください。
自分で試してみよう
# pandas は pd として既にインポートされています
df = pd.read_csv("./stats.csv")
# 以下にコードを書いてください
Pandas Analyticsのすべてのレッスン
4Data Analysis with Pandas
Descriptive StatisticsGrouping and Aggregating DataDifferent AggregationsMerge & Concat2Working with the DataFrame
Understanding DataFramesAccessing DataData Cleaning - Missing dataData Cleaning - More tools3Data Manipulation with Pandas
Return Requested ResultFilter DataAdd & DeleteModify DataModify StringsCustom Modifications