基于某些条件将python中的连续列转换为二进制
我想根据某些条件将数据帧的一列转换为0和1的二进制分类。阈值为4。如果该特定列的值高于4,则应将1分配给其他0 如何做到这一点?您可以尝试以下方法:基于某些条件将python中的连续列转换为二进制,python,Python,我想根据某些条件将数据帧的一列转换为0和1的二进制分类。阈值为4。如果该特定列的值高于4,则应将1分配给其他0 如何做到这一点?您可以尝试以下方法: def process_data(): data = <your data> out_data = <define empty here as per data type> for item in data:#iterate through all items if <some
def process_data():
data = <your data>
out_data = <define empty here as per data type>
for item in data:#iterate through all items
if <some condition>:
#here process your items in data
# add modified item in out_data
else:
#process else condition
#add modified item in out_data
return out_data
#usage
processed_data = process_data()
def process_data():
数据=
out_数据=
对于数据中的项:#遍历所有项
如果:
#这里处理数据中的项目
#添加修改的项目输入输出数据
其他:
#工艺条件
#添加修改的项目输入输出数据
返回数据
#用法
已处理数据=处理数据()
您可以创建一个掩码,然后替换这些值
mask = df['column_name'] > 4
df.loc[mask, 'column_name'] = 1
mask = df['column_name'] < 4
df.loc[mask, 'column_name'] = 0
mask=df['column\u name']>4
df.loc[掩码,'列名称']=1
mask=df['column_name']<4
df.loc[掩码,'列名称']=0
或者只是使用
df.loc[df['column_name'] < 4, 'column_name'] = 0
df.loc[df['column_name'] > 4, 'column_name'] = 1
df.loc[df['column\u name']<4,'column\u name']=0
df.loc[df['column_name']>4,'column_name']=1
在这种情况下,
mask
将只是一个线性pandas系列。不,不要这样做,不要在pandas数据帧上使用循环,pandas以多种方式进行优化,这样做完全可以消除这种影响。感谢您的帮助!