[英]Manhattan distance problem in python without using scikit learn module?
[英]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.