如何使用特定字符串搜索数据帧中的所有值



我实际上被困住了,想要搜索数据帧以查找所有包含指向不同数据帧的 url 链接的单元格,即

输入:

A    B            C
0            1    2  https://123
1  https://432  333           qq
2  https://567   rt           q4

输出:

R
0  https://123
1  https://432
2  https://567

我正在尝试一种方法来搜索包含字符串"http"的所有列,但它不起作用

尝试:

output_df = pd.dataframe(columns=['R'])
for col in df.columns.tolist():
output_df = pd.concat([ouput_df, df.loc[df[col].str.contains('https'), col].rename({col: 'R'}, axis=1)])

您可以stack()数据帧并使用方法contains()搜索包含 url 的单元格:

df = df.stack()
df[df.str.contains('http')].to_frame('R').reset_index(drop=True)

输出:

R
0  https://123
1  https://432
2  https://567

您可以用逗号连接每一行并使用正则表达式在每行中查找URL,即使有多个URL,这也有效。如果没有 url,它将为该行设置空列表

df.apply(lambda row: ",".join(row), axis=1).str.findall("http[s]?://[^,]*")

最新更新