你好,我有一个DF,我想过滤到一个新的DF中,所有的行都是“TRUE”,在一个对象类型的列中。试图将它转换为字符串,但没有工作。此外,在那之后,我需要将所有的列(系列类型)值转换为小写。下面是我的代码:
df["valid"] = df["valid"].astype(str) in_df = df[df.valid.lower() == "true"]
有人能帮忙吗?
5sxhfpxr1#
列中的值为布尔值(True, False),其中包含None。
True, False
None
df = pd.DataFrame({'valid':[True, False, None]}) print (df) valid 0 True 1 False 2 None
您的解决方案应通过Series.str.lower进行更改:
Series.str.lower
in_df = df[df.valid.astype(str).str.lower() == "true"]
或按布尔值True进行比较:
True
in_df = df[df.valid == True]
或者通过.astype('boolean')转换为Nullable Boolean data type:第一个
.astype('boolean')
Nullable Boolean data type
1条答案
按热度按时间5sxhfpxr1#
列中的值为布尔值(
True, False
),其中包含None
。您的解决方案应通过
Series.str.lower
进行更改:或按布尔值
True
进行比较:或者通过
.astype('boolean')
转换为Nullable Boolean data type
:第一个