Python 索引if语句

Python 索引if语句,python,pandas,dataframe,Python,Pandas,Dataframe,如果数据帧中的索引大于x,我将尝试创建一个1的新列 但是这个代码不起作用。有人有什么想法吗 if df.index>=3: df['Step1']=1 else: df['Step1']=0 让我们举一个例子dataframe,如下所示 df = pd.DataFrame({"a":[1,2,3,4,5],"b":[2,4,9,16,25]}) 索引方法打印如下 In [4]: df.index Out[4]: RangeIndex(start=0, stop=5,

如果数据帧中的索引大于x,我将尝试创建一个1的新列

但是这个代码不起作用。有人有什么想法吗

if df.index>=3:
    df['Step1']=1
else:
    df['Step1']=0

让我们举一个例子
dataframe
,如下所示

df  = pd.DataFrame({"a":[1,2,3,4,5],"b":[2,4,9,16,25]})
索引方法打印如下

In [4]: df.index
Out[4]: RangeIndex(start=0, stop=5, step=1)
In [5]: df.index>3
Out[5]: array([False, False, False, False,  True])
df.index>3
打印如下

In [4]: df.index
Out[4]: RangeIndex(start=0, stop=5, step=1)
In [5]: df.index>3
Out[5]: array([False, False, False, False,  True])
所以,答案是

y = df.index>3
df['new_column'] = y.astype(int)
df
   a   b  new_column
0  1   2    0
1  2   4    0
2  3   9    0
3  4  16    0
4  5  25    1
编辑: 如果要在3到9个索引之间执行 您可以执行以下操作

import numpy as np
np.logical_and(df.index>2, df.index<5)
array([False, False, False,  True,  True])
将numpy导入为np

np.logical_和(df.index>2,df.index让我们举一个例子
dataframe
,如下所示

df  = pd.DataFrame({"a":[1,2,3,4,5],"b":[2,4,9,16,25]})
索引方法打印如下

In [4]: df.index
Out[4]: RangeIndex(start=0, stop=5, step=1)
In [5]: df.index>3
Out[5]: array([False, False, False, False,  True])
df.index>3
打印如下

In [4]: df.index
Out[4]: RangeIndex(start=0, stop=5, step=1)
In [5]: df.index>3
Out[5]: array([False, False, False, False,  True])
所以,答案是

y = df.index>3
df['new_column'] = y.astype(int)
df
   a   b  new_column
0  1   2    0
1  2   4    0
2  3   9    0
3  4  16    0
4  5  25    1
编辑: 如果要在3到9个索引之间执行 您可以执行以下操作

import numpy as np
np.logical_and(df.index>2, df.index<5)
array([False, False, False,  True,  True])
将numpy导入为np

np.u和(df.index>2,df.indexhere您正在检查整个df。可能是您应该为每个元素执行此操作。您可以显示更多的代码和收到的错误吗?@fred.schwartz,我回答了您的问题,这有帮助吗?),我使用了一个示例数据框。您可以用从csv@InAFlash是的,那正是我想要的。谢谢很多,真的吗helpful@InAFlash非常感谢。非常有用。您正在检查整个df。可能您应该为每个元素执行此操作。您可以显示更多代码和收到的错误吗?@fred.schwartz,我回答了您的问题,这有帮助吗?我使用了一个示例数据框。您可以用从csv@InAFlash对那正是我想要的。非常感谢。真的helpful@InAFlash非常感谢,非常有用