Modify Data
Coddyの「Pandas Analytics」コースのレッスン 11/19。
特定のセル、列、または行のデータを上書きするには、新しい値を代入します:
df["existing_col"] = new_value # 列を修正
df.loc[index] = new_value # 行を修正
df.loc[index, "existing_col"] = new_value # セルを修正特定の条件を満たす行の列の値を更新するには、以前のレッスンで学んだのと同じ条件を .loc メソッドで使用します:
df.loc[df['col'] > 5, 'existing_col'] = new_value
df.loc[(df['col'] <= 5) & (df['col'] > 2), 'existing_col'] = new_value
既存の行を修正する際には、
locキーワードを使用することが重要です。多くの場合、locを使わずにデータフレームを修正しようとすると、オリジナルのデータではなくコピーを扱っていることになります。例えば:df[(df['col'] <= 5) & (df['col'] > 2)]["existing_col"] = new_valueここでは、条件によってオリジナルのデータの代わりにデータフレームのコピーが返されます。
チャレンジ
簡単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,JAPEIS_VALIDが1に等しく、かつUTILIZATIONが0.4未満である場所の、すべてのセル(IS_VALID列とUTILIZATION列のセルを除く)の値をMODIFIEDに変更してください。
結果を df 変数に格納してください。
自分で試してみよう
# pandas は pd としてインポート済みです
df = pd.read_csv("./stats.csv")
for column in df.columns:
if column not in ["IS_VALID", "UTILIZATION"]:
df[column] = df[column].astype(object)
# 以下にコードを記述してください
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