数值数据的二进制转换
我是python的新手。我正在尝试仅以0和1的形式获得输出。不像00001等。我试图在输出中将特征中的值0保留为0,并在数据集的所有列中将大于0的值替换为1。我正在对我的数据集进行预处理。我被这部分卡住了。我已经将名义特征转换为二进制特征了。我正在使用NSLKDD数据集。
df = pd.DataFrame(dataset)
df.iloc[:,0:] = pd.to_numeric(df.iloc[:, 0:])
print(df)尝试写下函数,但无法理解如何继续:
def numericalTobinary (datset):
if (datset > 0):
datset.iloc[:,0:]=1
else:
datset.iloc[:,0:]=0发布于 2019-11-08 02:44:18
你不需要为此创建一个函数。您可以使用df > 0创建数据帧的布尔版本,然后使用astype将布尔值转换为整数(1和0):
binary_df = (df > 0).astype(int)发布于 2019-11-08 02:44:18
试试这个:
import pandas as pd
import numpy as np
a = pd.DataFrame(np.array([[1, 0],[2, 20],[3, 0],[5, 100]]))
print(a)
a.loc[a[1]>0, 1]= 1
print(a)之前的输出:
0 1
0 1 0
1 2 20
2 3 0
3 5 100输出在以下位置之后:
0 1
0 1 0
1 2 1
2 3 0
3 5 1https://stackoverflow.com/questions/58754719
复制相似问题