簡體   English   中英

創建一個 function 將字符串編碼為二進制而不使用 SciKit Learn - python 3

[英]Create a function that encodes strings to binary without using SciKit Learn - python 3

創建一個 function 將所有字符串 't' 和 'f' 替換為 1s 和 0s...

這就是我所在的地方

def binary_encoding(df):
    for col in df.columns:
        replace_map = {'t':1, 'f': 0,}
        df.columns.map(replace_map) -- not sure what to do here
    return df

我嘗試過偽代碼,但不熟悉實現代碼本身。 這里使用的是replace方法嗎? 我正在考慮使用字典來映射值,正如您在上面可能有些理解的那樣。 任何指針?

根本不需要使用.apply 只需使用DataFrame.replace()方法:

def binary_encoding(df):
    return df.replace({"t": 1, "f": 0})

df = pd.DataFrame([['f', 'g', 'h'], ['j', 'k', 't']])
print(df)
   0  1  2
0  f  g  h
1  j  k  t

new_df = binary_encoding(df)
print(new_df)
   0  1  2
0  0  g  h
1  j  k  1

您需要在一個列上應用每個map並將其保存到列中

def binary_encoding(df: pd.DataFrame):
    replace_map = {'t': 1, 'f': 0, }
    for col in df.columns:
        if df[col].isin(['f', 't']).all(): 
            df[col] = df[col].map(replace_map)
    return df

測試

df = pd.DataFrame([['f', 'g', 'h'], ['j', 'k', 't']])
print(df, "\n")
df = binary_encoding(df)
print(df)


   0  1  2
0  f  g  h
1  j  k  t

     0   1    2
0  0.0 NaN  NaN
1  NaN NaN  1.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM