Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于某些条件将python中的连续列转换为二进制_Python - Fatal编程技术网

基于某些条件将python中的连续列转换为二进制

基于某些条件将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

我想根据某些条件将数据帧的一列转换为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 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以多种方式进行优化,这样做完全可以消除这种影响。感谢您的帮助!