Как искать все значения в кадре данных с определенной строкой - PullRequest
0 голосов
/ 06 октября 2019

Я на самом деле застрял и хочу найти 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 голосов
/ 06 октября 2019

Вы можете 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
0 голосов
/ 06 октября 2019

Вы можете присоединиться к каждой строке через запятую и использовать регулярные выражения, чтобы найти URL-адреса в каждой строке, это работает даже при наличии нескольких URL-адресов. В случае отсутствия URL будет установлен пустой список для этой строки

df.apply(lambda row: ",".join(row), axis=1).str.findall("http[s]?://[^,]*")
0 голосов
/ 06 октября 2019

Попробуйте:

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)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...