#python #pandas
#python #pandas
Вопрос:
У меня есть dataframe
такой:
C1 C2 C3 C4
A TV /r/tv3 NaN
B Music Pop /r/pop
C /r/foo NaN NaN
Мне нужно выполнить итерацию по каждой строке и получить значение первого столбца, а затем найти значение столбца, который начинается с /r/ . Таким образом, результат должен выглядеть следующим образом:
A /r/tv3
B /r/pop
C /r/foo
Какой самый быстрый pythonic способ сделать это?
Ответ №1:
Используя where
после startswith
df.where(df.apply(lambda x : x.str.startswith(pat='/r/'),axis=1)).stack().reset_index(level=1,drop=True)
Out[680]:
C1
A /r/tv3
B /r/pop
C /r/foo
dtype: object
Комментарии:
1. потрясающе! но он не выводит первый столбец (т. Е. C1). Это дает только второй столбец
2. @msmazh добавление
.reset_index()
в конце