我目前有以下数据框
需要创建一个新的二进制数据框,它应用以下逻辑:
- 如果任何列中的值为> = 1.5且前值为< 1.5,则显示为1。
- 继续显示1,除非值下降< = 0,然后输入0。
因此,将此应用于上述内容应该产生:
知道如何最有效地完成这项工作吗?
答案 0 :(得分:1)
这是我认为应该有效的方法。 首先为每个现有列创建新列,这些列将包含向上移动一列的现有列。 即如果A是0 1 1.5 创建A1到1 1.5南 你可以使用熊猫转移来做到这一点。 为所有列做这件事 然后, if df是dataFrame的名称
not_found_zero=1
for row in df.iterrows():
if(not_found_zero):
if row['A']<=0:
row['A']=0
flag=0
else:
row['A'] =(row['A']>=1.5) & (row['A1']>=1.5))
else:
row['A']=0
对所有列执行此操作,并记住在移位后,A1的最后一列将为nan。 完成后删除temperory行。