Mô tả bài toán
Cho Series với index tùy chỉnh:
a abc b 123 c xyz d ijk
Yêu cầu: Nhập index từ người dùng, kiểm tra giá trị tại index đó có phải toàn chữ số (digit) hay không.
Giải pháp
Sử dụng phương thức str.isdigit() trên giá trị lấy được bằng index.
Ví dụ code hoàn chỉnh
import pandas as pd
dic = {'a':'abc', 'b':'123', 'c':'xyz', 'd':'ijk'}
data = pd.Series(dic)
print("Series:")
print(data)
while True:
x = input("\nNhập index (hoặc 'q' để thoát): ").strip()
if x.lower() == 'q':
break
if x in data.index:
val = data[x]
if val.isdigit():
print(f"Index '{x}': '{val}' -> CHỮ SỐ")
else:
print(f"Index '{x}': '{val}' -> KHÔNG PHẢI CHỮ SỐ")
else:
print(f"Index '{x}' không tồn tại trong Series.")
Đầu ra mẫu
Series: a abc b 123 c xyz d ijk dtype: object Nhập index (hoặc 'q' để thoát): a Index 'a': 'abc' -> KHÔNG PHẢI CHỮ SỐ Nhập index (hoặc 'q' để thoát): b Index 'b': '123' -> CHỮ SỐ Nhập index (hoặc 'q' để thoát): q
Mở rộng: Kiểm tra vector hóa cho toàn Series
import pandas as pd
data = pd.Series({'a':'abc', 'b':'123', 'c':'xyz', 'd':'ijk', 'e':'456'})
# Kiểm tra tất cả một lần
is_digit = data.str.isdigit()
print("Kiểm tra toàn Series:")
print(is_digit)
# Lọc chỉ các giá trị là số
numeric_vals = data[is_digit]
print("\nCác giá trị toàn chữ số:")
print(numeric_vals)
Đầu ra
Kiểm tra toàn Series: a False b True c False d False e True dtype: bool Các giá trị toàn chữ số: b 123 e 456 dtype: object