データの整形

列同士の計算

「International_football_results.csv」からhome_scoreaway_scoreの点差を演算し’point_diff_data’に代入し、先頭から5個表示する。
ポイント 点差は自然数(マイナスの点差は存在しない)、絶対値を取得する関数abs()を利用しよう!!

point_diff_data = abs(df["home_score"] - df["away_score"])
print(point_diff_data.head())
0    0
1    2
2    1
3    0
4    3
dtype: int64

for文等の繰り返し処理がなくても、全ての行に対して演算を行う

列の追加

df["point_diff"] = point_diff_data
df.head()
datehome_teamaway_teamhome_scoreaway_scoretournamentcitycountryneutralpoint_diff
01872-11-30ScotlandEngland00FriendlyGlasgowScotlandFalse0
11873-03-08EnglandScotland42FriendlyLondonEnglandFalse2
21874-03-07ScotlandEngland21FriendlyGlasgowScotlandFalse1
31875-03-06EnglandScotland22FriendlyLondonEnglandFalse0
41876-03-04ScotlandEngland30FriendlyGlasgowScotlandFalse3

行の追加

# 行の追加 一人目
df3_add1 = pd.DataFrame([[25.0, 122.0, 2520.0, "M", 1, 71.0, 178.0]], columns=["Age", "Blood_pressure", "Vital_capacity", "Gender", "Disease", "Weight", "Height"])
df3 = pd.concat([df3,df3_add1], ignore_index=True, sort=False)リストを使う
df3[-5:]

行を追加するには、pd.concatを使う。

pd.concat([df,df],…)と追加するdfはリストの中に入れることを注意。

  • 行の作成方法:
    pd.DataFrame([[値2, 値2]], columns=['列名1', '列名2'])

欠損値がある場合

df4_add = pd.DataFrame([["2020-07-23","Tokyo","Japan"]], columns=["date","city","country"])
df4=pd.concat([df4,df4_add], ignore_index=True, sort=False)
df4[-5:]
datehome_teamaway_teamhome_scoreaway_scoretournamentcitycountryneutral
390062018-06-04ArmeniaMoldova0.00.0FriendlyKematenAustriaTrue
390072018-06-04IndiaKenya3.00.0FriendlyMumbaiIndiaFalse
390082020-07-23NaNNaNNaNNaNNaNTokyoJapanNaN
390092020-07-23NaNNaNNaNNaNNaNTokyoJapanNaN
390102020-07-23NaNNaNNaNNaNNaNTokyoJapanNaN

ない項目は勝手に、NaNが追加される。

不要な行を削除したい場合は.drop(index=行名)を使えば削除できる

行方向の削除
df.drop(0) # 0番目のデータを削除 dfなのが注意 pdではない
df.drop([1,2]) # リスト形式で複数
df.drop('d')
df.drop(index='d')

列方向の削除
df.drop('A',axis=1) # axis='columns'でも可
df.drop(['A','C'],axis='columns') # 複数列削除することも可能
df.drop(columns='A')

コメント

タイトルとURLをコピーしました