2024-10-06 02:33:33 发布
网友
我有一个熊猫数据框,有两列,类型和文本 文本列包含字符串值。 如何删除文本列中包含一些数值的行。 e、 g组:
`ABC 1.3.2`, `ABC12`, `2.2.3`, `ABC 12 1`
我试过下面的,但有一个错误。你知道为什么会出错吗?在
来自jpp的数据
s[s.str.isalpha()] Out[261]: 0 ABC 2 DEF 6 GHI dtype: object
假设您将numeric定义为x.isdigit()求值为True,则可以将any与生成器表达式一起使用,并通过pd.Series.apply创建布尔掩码:
x.isdigit()
True
any
pd.Series.apply
s = pd.Series(['ABC', 'ABC 1.3.2', 'DEF', 'ABC12', '2.2.3', 'ABC 12 1', 'GHI']) mask = s.apply(lambda x: not any(i.isdigit() for i in x)) print(s[mask]) 0 ABC 2 DEF 6 GHI dtype: object
在您的例子中,我认为使用简单索引比使用drop更好。例如:
>>> df text type 0 abc b 1 abc123 a 2 cde a 3 abc1.2.3 b 4 1.2.3 a 5 xyz a 6 abc123 a 7 9999 a 8 5text a 9 text a >>> df[~df.text.str.contains(r'[0-9]')] text type 0 abc b 2 cde a 5 xyz a 9 text a
它定位没有数字文本的任何行
解释:
返回有任何数字的布尔序列:
0 False 1 True 2 False 3 True 4 True 5 False 6 True 7 True 8 True 9 False
您可以将它与~一起使用,以索引返回false的数据帧
~
来自jpp的数据
假设您将numeric定义为
x.isdigit()
求值为True
,则可以将any
与生成器表达式一起使用,并通过pd.Series.apply
创建布尔掩码:在您的例子中,我认为使用简单索引比使用drop更好。例如:
它定位没有数字文本的任何行
解释:
^{pr2}$返回有任何数字的布尔序列:
您可以将它与
~
一起使用,以索引返回false的数据帧相关问题 更多 >
编程相关推荐