Pandas迭代数据框列

时间:2018-03-16 16:03:55

标签: python pandas

对于我的字典格式数据到pandas,如果任何值超出68&的范围,我如何标记数据集(我的pandas数据帧中的列)。 72?

df = pd.DataFrame(dict(a=[71.5,72.8,79.3],
                       b=[70.2,73.3,74.9],
                       c=[63.1,64.9,65.9],
                       d=[70.1,70.4,70.9]))

我试图做的是创建一个单独的pandas数据框的列名,如果有任何数据超出68&的范围。 72.任何提示?

df_OutOfRange=df[(df.columns<68) | (df.columns>72)]

df_OutOfRange

1 个答案:

答案 0 :(得分:4)

使用

In [48]: ((df < 68) | (df > 72)).any()
Out[48]:
a     True
b     True
c     True
d    False
dtype: bool

或者,

In [49]: (df.lt(68) | df.gt(72)).any()
Out[49]:
a     True
b     True
c     True
d    False
dtype: bool

或者,

In [62]: df.apply(lambda x: ~x.between(68, 72).all())
Out[62]:
a     True
b     True
c     True
d    False
dtype: bool

详细

In [50]: df
Out[50]:
      a     b     c     d
0  71.5  70.2  63.1  70.1
1  72.8  73.3  64.9  70.4
2  79.3  74.9  65.9  70.9