2013-06-24 4 views
3

Это очень интересный вопрос, и я ищу помощь экспертов, чтобы больше узнать об этом и как это сделать. У меня есть DataFrame (который я сделал при анализе данных из Big Iron ... все еще существует). Теперь я хочу удалить некоторые строки, используя регулярное выражение, но не знаю, как это работает в Pandas.Регулярное выражение для удаления строк

24 | DRFT.146.856 | Dollar- | (60.00) | DEBITS- | 0.00 | CREDITSDRA- | 0.00 
25 | 0616-21.01 |  2407 | WAYZAT | TMCD | JUNE |  16,DRA |2013 
26 |   AND | CORRECTION |JOURNAL00 | <DB> |KLRETY | CATEGORYDRA- | * 
27 | DRFT.146.867 | Dollar- | (200.00) | DEBITS- | 0.00 | CREDITSDRA- | 0.00 
28 | DRFT.146.922 | Dollar- | (25.00) |DEBITS- | 0.00 | CREDITSDRA- |0.00 
29 | DRFT.146.963 | Dollar- | (100.00) | DEBITS- | 0.00 | CREDITSDRA- | 0.00 
30 | DRFT.146.964 | Dollar- | (100.00) | DEBITS- | 0.00 | CREDITSDRA- | 0.00 

Ряд озабоченности 25 & 26, где данные не следует какому-либо шаблону. Любая подсказка.

+0

Вы только что хотите удалить id 25 & 26? или есть шаблон, почему вы хотите его удалить? – HamZa

+0

Я бы предложил отфильтровать их перед тем, как поместить их в «DataFrame». Похоже, что в некоторых столбцах должно быть легко проверить шаблоны или ограниченный набор допустимых значений. Насколько вы понимаете эти данные - какое поле * вы думаете, что можете фильтровать наиболее эффективно? –

+0

@HamZa Существует шаблон. И это проблема, так как я не знаю, где находится местоположение, и только шаблон – LonelySoul

ответ

4

Несколько возможных соперников:

In [11]: df[2].str.contains('Dollar') 
Out[11]: 
0  True 
1 False 
2 False 
3  True 
4  True 
5  True 
6  True 
Name: 2, dtype: bool 

In [12]: df[3].str.startswith('(') 
Out[12]: 
0  True 
1 False 
2 False 
3  True 
4  True 
5  True 
6  True 
Name: 3, dtype: bool 

Выполнение такого рода вещи всегда немного темного искусства (как обычно есть много данных, и некоторые из них могут выглядеть очень похожи на хорошие данные) ...

In [13]: df[df[3].str.startswith('(')] 
Out[13]: 
    0    1  2   3  4  5   6 7 
0 24 DRFT.146.856 Dollar- (60.00) DEBITS- 0.00 CREDITSDRA- 0 
3 27 DRFT.146.867 Dollar- (200.00) DEBITS- 0.00 CREDITSDRA- 0 
4 28 DRFT.146.922 Dollar- (25.00) DEBITS- 0.00 CREDITSDRA- 0 
5 29 DRFT.146.963 Dollar- (100.00) DEBITS- 0.00 CREDITSDRA- 0 
6 30 DRFT.146.964 Dollar- (100.00) DEBITS- 0.00 CREDITSDRA- 0 
+0

Thats интересно Энди. Я пытаюсь найти способ, с помощью которого «Regex» можно использовать для определения того, какие строки «держать». Кажется, у меня может быть больше успеха. – LonelySoul

+0

содержит и некоторые другие методы строки принимают регулярные выражения. –

+0

Да. звучит безподобно. Просто быстрый вопрос. Как удалить строки, где условие «False» – LonelySoul