如何在整个df中查找并定位子串(行和列)?

问题描述 投票:0回答:1

我有一个大型 df,有 70 多列和 1 百万多行,我想查找并定位 a 子字符串

我试过了

df.apply(lambda row: row.astype(str).str.contains('substring').any(), axis=1)

我现在只知道哪些行包含子字符串,而不知道哪些列

python pandas search substring
1个回答
0
投票

您可以使用

df.isin()
获取一系列布尔值,告诉您字符串存在的位置。然后,我喜欢将其堆叠并使用布尔索引。这可能会有所帮助:

import pandas as pd
import numpy as np
import sys

x = np.array([[0., 1., 1., 'string', 0., 0.],
              [0., 1., 1., 'substring', 0., 0.],
              [0., 1., 1., 'substring', 0., 0.],
              [0., 1., 1., 'string', 0., 0.]])
print(x)
y = ['a', 'b', 'c', 'd', 'e', 'f']
df = pd.DataFrame(x, columns=y)
print('Original df: ')
print(df)
result = df.isin(['substring'])
print('result: ', result)
pos = result.stack()
print('pos: ', pos)
string_pos = pos[pos].index.to_list()  # boolean indexing: Gets indexes where the val is True.
print('string_pos: ', string_pos)
© www.soinside.com 2019 - 2024. All rights reserved.