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

时间:2019-10-06 06:54:49

标签: python pandas dataframe

我实际上很困惑,想搜索一个数据框以找到所有包含指向另一个数据框的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”但不起作用的所有列的方法

3 个答案:

答案 0 :(得分:0)

尝试:

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)])

答案 1 :(得分:0)

您可以stack()使用数据框,并使用方法contains()搜索带有网址的单元格:

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

答案 2 :(得分:0)

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

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