如何在 pandas 数据框列中选择一系列值?

2023-12-22

import pandas as pd
import numpy as np
data = 'filename.csv'
df = pd.DataFrame(data)
df 

        one       two     three  four   five
a  0.469112 -0.282863 -1.509059  bar   True
b  0.932424  1.224234  7.823421  bar  False
c -1.135632  1.212112 -0.173215  bar  False
d  0.232424  2.342112  0.982342  unbar True
e  0.119209 -1.044236 -0.861849  bar   True
f -2.104569 -0.494929  1.071804  bar  False

我想为某个列选择一个范围,比如说列two。我想选择 -0.5 和 +0.5 之间的所有值。如何做到这一点?

我期望使用

-0.5 < df["two"] < 0.5

但这(自然地)给出了一个 ValueError:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

I tried

-0.5 (< df["two"] < 0.5)

但这输出了所有True.

正确的输出应该是

0    True
1    False
2    False
3    False
4    False
5    True

在 pandas 数据框列中查找一系列值的正确方法是什么?

编辑:问题

Using .between() with

df['two'].between(-0.5, 0.5, inclusive=False)

将是之间的区别

 -0.5 < df['two'] < 0.5

以及诸如此类的不平等现象

 -0.5 =< df['two'] < 0.5

?


Use between http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.between.html with inclusive=False对于严格的不等式:

df['two'].between(-0.5, 0.5, inclusive=False)

The inclusive参数确定是否包含端点(True: <=, False: <)。这适用于两个标志。如果您想要混合不等式,则需要显式地对其进行编码:

(df['two'] >= -0.5) & (df['two'] < 0.5)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 pandas 数据框列中选择一系列值? 的相关文章