เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เตรียมข้อมูลที่ถูก censor

สมมติว่าคุณเป็นนักชีววิทยาทางทะเลที่กำลังศึกษาอายุขัยของโลมาสปินเนอร์ คุณมีข้อมูลย้อนหลังที่บันทึกวันเกิดและวันตายของโลมาแต่ละตัว โดยมีบางกรณีที่น่าสนใจ ได้แก่ โลมาบางตัวอพยพออกไปยังพื้นที่อื่น ทำให้ทีมวิจัยสูญเสียการติดตาม บางตัวเป็นโลมาที่ย้ายมาจากฝูงอื่นและไม่ทราบวันเกิดที่แน่ชัด และบางตัวยังมีชีวิตอยู่!

  • ถ้าวันเกิดเป็น NaN แสดงว่าโลมาตัวนั้นอพยพมาจากฝูงอื่น
  • ถ้าวันตายเป็น NaN แสดงว่าโลมาตัวนั้นหนีไปหรือยังมีชีวิตอยู่

DataFrame ที่ใช้งานชื่อว่า dolphin_df ให้สร้างคอลัมน์ใหม่ชื่อ observed เพื่อระบุว่าช่วงอายุของโลมาแต่ละตัวถูก censor หรือไม่ โดยเติมค่าที่เหมาะสมในฟังก์ชัน check_observed แล้วใช้ .apply() เพื่อนำฟังก์ชันนี้ไปใช้กับ dolphin_df

pandas และ numpy ถูกโหลดไว้แล้วในชื่อ pd และ np ตามลำดับ

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Survival Analysis ด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้างฟังก์ชัน check_observed ที่คืนค่า 0 ถ้าข้อมูลนั้นถูก censor และคืนค่า 1 ในกรณีอื่น
  • สร้างคอลัมน์ flag การ censor ชื่อ observed โดยใช้ฟังก์ชัน check_observed
  • แสดงค่าเฉลี่ยของคอลัมน์ observed ใน console

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create a function to return 1 if observed 0 otherwise
def check_observed(row):
    if pd.isna(row['birth_date']):
        flag = ____
    elif pd.isna(row['death_date']):
        flag = ____
    else:
        flag = ____
    return ____
  
# Create a censorship flag column
dolphin_df[____] = dolphin_df.apply(____, axis=1)

# Print average of observed
print(np.average(____))
แก้ไขและรันโค้ด