将数据集的所有列转换为二进制(0或1)

2024-06-16 19:14:19 发布

您现在位置:Python中文网/ 问答频道 /正文

数值数据的二进制转换

我对Python还不熟悉。我试图以0和0的形式得到输出 仅1个。不是像00001等,我试图保持功能的价值观 输出中0为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

Tags: 数据功能dataframedf二进制特征dataset形式
2条回答

试试这个:

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  1

你真的不需要为此创建一个函数。可以使用df > 0创建数据帧的布尔版本,然后使用astype将布尔值转换为整数(1和0):

binary_df = (df > 0).astype(int)

相关问题 更多 >