Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนโปรแกรม Python สร้าง DataFrame สระเสียงสุ่ม 10 แถว 2 คอลัมน์ หาคู่ที่ตรงกัน

สมมติว่าคุณต้องการสร้าง DataFrame 10 แถว 2 คอลัมน์ จากสระเสียง (a, e, i, o, u) แบบสุ่ม แล้วหาแถวที่คอลัมน์ทั้งสองมีค่าเท่ากัน

วิธีแก้ปัญหา

  1. สร้าง DataFrame ด้วย np.random.choice() สุ่มสระเสียง 10 ค่าต่อคอลัมน์
  2. ใช้ np.where(df.col1 == df.col2) หา index ที่ค่าตรงกัน
  3. ใช้ df.iloc[...] ดึงแถวที่ตรงกัน และ len() นับจำนวน

ตัวอย่างโค้ด

import pandas as pd
import numpy as np

np.random.seed(42)  # เพื่อ reproducibility

df = pd.DataFrame({'col1': np.random.choice(['a', 'e', 'i', 'o', 'u'], 10),
                   'col2': np.random.choice(['a', 'e', 'i', 'o', 'u'], 10)})

print("DataFrame สระเสียงสุ่ม:\n", df)

# หาแถวที่ col1 == col2
matched = df.iloc[np.where(df.col1 == df.col2)]
print("\nแถวที่คอลัมน์ทั้งสองตรงกัน:")
print(matched)

print("\nจำนวนแถวที่ตรงกัน:", len(matched))

ผลลัพธ์ตัวอย่าง

DataFrame สระเสียงสุ่ม:
  col1 col2
0    o    e
1    e    e
2    i    u
3    e    o
4    i    i
5    u    o
6    e    a
7    u    o
8    a    u
9    e    a

แถวที่คอลัมน์ทั้งสองตรงกัน:
  col1 col2
1    e    e
4    i    i

จำนวนแถวที่ตรงกัน: 2

คำอธิบาย:

  • np.random.choice(['a','e','i','o','u'], 10) สุ่ม 10 ค่าจาก list สระเสียง
  • np.where(condition) คืนค่า tuple ของ indices ที่เงื่อนไขเป็นจริง
  • df.iloc[indices] ดึงแถวตาม indices ที่ได้
  • วิธีนี้ใช้ได้กับการเปรียบเทียบคอลัมน์ใดๆ ที่มี dtype ตรงกัน