Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.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_Pandas_If Statement_Dataframe - Fatal编程技术网

Python 使用条件语句并添加列

Python 使用条件语句并添加列,python,pandas,if-statement,dataframe,Python,Pandas,If Statement,Dataframe,我正在使用Pandas对excel电子表格进行排序。我想执行一个if/elif函数,在我的数据帧中的一个新列中返回一个字符串。我试图返回一个名为“action”的新列,该列返回一个基于非时间值的字符串 state time ca 1 ca 5 ca 7 ca 10 for rows in df: if df[time]>=1: return "do nothing" elif df

我正在使用Pandas对excel电子表格进行排序。我想执行一个if/elif函数,在我的数据帧中的一个新列中返回一个字符串。我试图返回一个名为“action”的新列,该列返回一个基于非时间值的字符串

state     time      
 ca         1
 ca         5
 ca         7
 ca         10

for rows in df:

 if df[time]>=1:
    return "do nothing"

 elif df[time]<=5:
     return "add more"

 elif df[time]<=10:
      return "add less"

  else:
      return "error"
状态时间
ca 1
ca 5
ca 7
ca 10
对于df中的行:
如果df[time]>=1:
返回“不做任何事”
elif df[time]IIUC我们可以使用以下方法:


使用
np.searchsorted

labels = np.array(['do nothing', 'add more', 'add less', 'error'])
df.assign(new=labels[np.searchsorted([1, 5, 10], df.time.values)])

  state  time         new
0    ca     1  do nothing
1    ca     5    add more
2    ca     7    add less
3    ca    10    add less

下面的代码是一种简单的方法,可以为pandas中的每个条件添加一列

将熊猫作为pd导入
从io导入StringIO
csv=StringIO(““”状态,时间
ca,1
ca,5
加利福尼亚州,7
约10英寸)
df=pd.read\U csv(csv)
#出[1]:
#国家时间
#0 ca 1
#1 ca 5
#2 ca 7
#3 ca 10
def添加_操作(行):

如果第[“时间”]行有更具体的问题或错误吗?请接受解决问题的答案
labels = np.array(['do nothing', 'add more', 'add less', 'error'])
df.assign(new=labels[np.searchsorted([1, 5, 10], df.time.values)])

  state  time         new
0    ca     1  do nothing
1    ca     5    add more
2    ca     7    add less
3    ca    10    add less