Python 使用条件语句并添加列
我正在使用Pandas对excel电子表格进行排序。我想执行一个if/elif函数,在我的数据帧中的一个新列中返回一个字符串。我试图返回一个名为“action”的新列,该列返回一个基于非时间值的字符串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
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