Панды: фильтрация строк с данными в определенном столбце на основе разделителя - PullRequest
1 голос
/ 20 июня 2019

Я пытался вернуть только те строки, когда любое значение в столбце Director имеет разделитель '|'.Но это не фильтрация на основе разделителя, а отображение всех строк.Пожалуйста, дайте мне знать о возможной проблеме с этим.

Я пробовал следующее:

hb_dctr = df_updated[df_updated['director'].str.contains('|')]
hb_dctr

Но он показывает следующее

id      popularity   budget     Cast                        director
135397  32.985763    150000000  Chris Pratt|Irrfan Khan     Colin Trevorrow
76341   28.419936    150000000  Tom Hardy|Charlize Theron   George Miller
76757   6.189369     176000003  Mila Kunis|Channing     Lana Wachowski|Lilly Wachowski

Он должен отображать только те строки, которые сid 135397 и 766341

Ответы [ 2 ]

2 голосов
/ 20 июня 2019

Вам необходимо установить regex=False

df[df.director.str.contains("|",regex=False)]

      id  popularity     budget                 Cast  \
2  76757    6.189369  176000003  Mila Kunis|Channing   

                         director  
2  Lana Wachowski|Lilly Wachowski  

Если вы хотите исключить такие строки, используйте инвертирование ~

df[~df.director.str.contains("|",regex=False)]

       id  popularity     budget                       Cast         director
0  135397   32.985763  150000000    Chris Pratt|Irrfan Khan  Colin Trevorrow
1   76341   28.419936  150000000  Tom Hardy|Charlize Theron    George Miller
1 голос
/ 20 июня 2019

Escape |, потому что специальный символ регулярного выражения (or):

df1 = df[df.director.str.contains("\|")]
print (df1)
      id  popularity     budget                      Cast  \
2  76757    6.189369  176000003  Mila Kunis|Channing Lana   

                    director  
2  Wachowski|Lilly Wachowski  

Для не содержит использования ~:

df2 = df[~df.director.str.contains("\|")]
print (df2)
       id  popularity     budget                       Cast         director
0  135397   32.985763  150000000    Chris Pratt|Irrfan Khan  Colin Trevorrow
1   76341   28.419936  150000000  Tom Hardy|Charlize Theron    George Miller

Подробнее :

print (df.director.str.contains("\|"))
0    False
1    False
2     True
Name: director, dtype: bool

print (~df.director.str.contains("\|"))
0     True
1     True
2    False
Name: director, dtype: bool
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...