Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra phần tử tại index k là chữ hay số trong Series Python

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