Tôi đang sử dụng máy tính xách tay Ipython để làm việc với các ứng dụng pyspark. Tôi có một tệp CSV có nhiều cột phân loại để xác định xem thu nhập có nằm trong hoặc trên phạm vi 50k hay không. Tôi muốn thực hiện một thuật toán phân loại lấy tất cả các yếu tố đầu vào để xác định phạm vi thu nhập. Tôi cần xây dựng một từ điển các biến để ánh xạ các biến và sử dụng hàm ánh xạ để ánh xạ các biến thành số để xử lý. Về cơ bản, tôi sẽ tập dữ liệu của mình ở định dạng số để tôi có thể thực hiện các mô hình.
Trong bộ dữ liệu, có các cột phân loại như giáo dục, tình trạng hôn nhân, tầng lớp lao động, v.v ... Ai đó có thể cho tôi biết làm thế nào để chuyển đổi chúng thành các cột số trong pyspark không?
workclass = {'?':0,'Federal-gov':1,'Local-gov':2,'Never- worked':3,'Private':4,'Self-emp-inc':5,'Self-emp-not-inc':6,'State-gov':7,'Without-pay':8}
Tôi đã tạo một từ điển mẫu với các cặp giá trị chính cho lớp công việc. Nhưng, tôi không biết cách sử dụng chức năng này trong chức năng bản đồ và thay thế dữ liệu phân loại trong tệp CSV bằng giá trị tương ứng.
wc = pd.read_csv('PATH', usecols = ['Workclass'])
df = pd.DataFrame(wc)
wcdict = {' ?':0,' Federal-gov':1,' Local-gov':2,' Never-worked':3,' Private':4,' Self-emp-inc':5,' Self-emp-n-inc':6,' State-gov':7,' Without-pay':8}
df_new = df.applymap(lambda s: wcdict.get(s) if s in wcdict else s)
print(df_new)
Đây là mã tôi đã viết bằng python bình thường để chuyển đổi dữ liệu phân loại thành dữ liệu số. Nó hoạt động tốt. Tôi muốn thực hiện chuyển đổi trong bối cảnh tia lửa. Và, có 9 cột phân loại trong nguồn dữ liệu. Có cách nào để tự động hóa quá trình cập nhật từ điển để có một cặp KV cho tất cả 9 cột không?