我有一个大的数据文件,我需要删除以某些字母结尾的行。在
下面是我使用的文件示例:
User Name DN
MB212DA CN=MB212DA,CN=Users,DC=prod,DC=trovp,DC=net
MB423DA CN=MB423DA,OU=Generic Mailbox,DC=prod,DC=trovp,DC=net
MB424PL CN=MB424PL,CN=Users,DC=prod,DC=trovp,DC=net
MBDA423 CN=MBDA423,OU=DNA,DC=prod,DC=trovp,DC=net
MB2ADA4 CN=MB2ADA4,OU=DNA,DC=prod,DC=trovp,DC=netenter code here
我使用的代码:
^{pr2}$如何使用正则表达式语法删除以“DA”和“PL”结尾的单词,但确保不会删除其他行,因为它们包含“DA”或“PL”?在
它应该删除这些行,最后得到这样一个文件:
User Name DN
MBDA423 CN=MBDA423,OU=DNA,DC=prod,DC=trovp,DC=net
MB2ADA4 CN=MB2ADA4,OU=DNA,DC=prod,DC=trovp,DC=net
前3行被删除,因为它们以DA和PL结尾
代替} 方法来检查字符串是否以特定模式结束。在
regular expressions
,您可以使用^{即:
您应该使用过滤后的数据创建另一个df,然后使用
pd.to_csv()
来保存文件的干净版本。在你可以用这个表达式
它将返回所有不以DA或PL结尾的行
^{pr2}$?:
是为了使括号不会捕获任何内容。否则,您将看到熊猫返回以下(无害)警告:或者,使用
endswith()
而不使用正则表达式,则可以通过使用以下表达式来实现相同的过滤:正如预期的那样,没有正则表达式的版本会更快。一个简单的测试,由
big_df
组成,其中包括10001份df
原件:您可以使用布尔掩码来检查
User_Name
的最后两个字符是否在由两个字符结尾组成的集合中不在(~
)中:相关问题 更多 >
编程相关推荐