Перевести R в конвейер Python - отфильтровать, выбрать и отсортировать - PullRequest
0 голосов
/ 11 мая 2018

Я очищаю набор данных в R и пытаюсь найти эквивалент моего процесса очистки, приведенного ниже, в Python.

df = dataframe %>% 
  filter(grepl('abc', Sheet1)) %>% 
  select(product) %>% 
  arrange(nchar(product))

Я знаю, что для фильтрации в Пандах я могу сделать что-то вроде df [df ['var']! = 'String'], но как я могу это сделать, если я хочу, чтобы конкретные строковые значения содержались и выбирались соответствующие столбцы перед сортировкой?

Любые идеи будут с благодарностью!

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Использование:

df = pd.DataFrame({'Sheet1':['abc f','as abc','ss','abc','abcd'],
                   'product':['aa','sss','aaa','s','ddddd'],
                   'val':[7,8,9,4,2]})

print (df)
   Sheet1 product  val
0   abc f      aa    7
1  as abc     sss    8
2      ss     aaa    9
3     abc       s    4
4    abcd   ddddd    2

df = df[df['Sheet1'].str.contains('abc')]
print (df)
   Sheet1 product  val
0   abc f      aa    7
1  as abc     sss    8
2      ss     aaa    9
3     abc       s    4
4    abcd   ddddd    2

df = df.iloc[df['product'].str.len().argsort()]
print (df)
   Sheet1 product  val
3     abc       s    4
0   abc f      aa    7
1  as abc     sss    8
4    abcd   ddddd    2

df = df[['product','val']]
print (df)
  product  val
3       s    4
0      aa    7
1     sss    8
4   ddddd    2
0 голосов
/ 11 мая 2018

Помогает, если вы можете опубликовать данные, но примерно:

> df %>% filter(grepl('abc', Sheet1)) %>% 

df.Sheet1.str.contains ( 'ABC')

> select(product) %>% 

... просто индекс по ['product'] ...

> arrange(nchar(product))

df.sort_index (уровень = df.product.apply (длина))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...