pandas 通过对象列中分配的“字符串”值过滤 Dataframe

wvyml7n5  于 2022-12-09  发布在  其他
关注(0)|答案(1)|浏览(112)

你好,我有一个DF,我想过滤到一个新的DF中,所有的行都是“TRUE”,在一个对象类型的列中。试图将它转换为字符串,但没有工作。此外,在那之后,我需要将所有的列(系列类型)值转换为小写。
下面是我的代码:

df["valid"] = df["valid"].astype(str)
in_df = df[df.valid.lower() == "true"]

有人能帮忙吗?

5sxhfpxr

5sxhfpxr1#

列中的值为布尔值(True, False),其中包含None

df = pd.DataFrame({'valid':[True, False, None]})
print (df)
   valid
0   True
1  False
2   None

您的解决方案应通过Series.str.lower进行更改:

in_df = df[df.valid.astype(str).str.lower() == "true"]

或按布尔值True进行比较:

in_df = df[df.valid == True]

或者通过.astype('boolean')转换为Nullable Boolean data type
第一个

相关问题