2024-04-18 19:48:14 发布
网友
我在python中有一个非常大的数据帧,我想将具有特定字符串的所有行放到特定列中。
例如,我想将字符串“XYZ”作为子字符串的所有行放在数据帧的列C中。
这可以用.drop()方法有效地实现吗?
pandas具有矢量化的字符串操作,因此您可以筛选出包含不需要的字符串的行:
In [91]: df = pd.DataFrame(dict(A=[5,3,5,6], C=["foo","bar","fooXYZbar", "bat"])) In [92]: df Out[92]: A C 0 5 foo 1 3 bar 2 5 fooXYZbar 3 6 bat In [93]: df[~df.C.str.contains("XYZ")] Out[93]: A C 0 5 foo 1 3 bar 3 6 bat
只有当你想比较精确的字符串时,这才有效。 如果要检查列字符串是否包含列表中的任何字符串,则此操作将不起作用。
与列表进行比较的正确方法是:
searchfor = ['john', 'doe'] df = df[~df.col.str.contains('|'.join(searchfor))]
如果字符串约束不只是一个字符串,则可以使用以下命令删除相应的行:
df = df[~df['your column'].isin(['list of strings'])]
上面将删除包含列表元素的所有行
pandas具有矢量化的字符串操作,因此您可以筛选出包含不需要的字符串的行:
只有当你想比较精确的字符串时,这才有效。 如果要检查列字符串是否包含列表中的任何字符串,则此操作将不起作用。
与列表进行比较的正确方法是:
如果字符串约束不只是一个字符串,则可以使用以下命令删除相应的行:
上面将删除包含列表元素的所有行
相关问题 更多 >
编程相关推荐