Невозможно сосчитать строки со специальным символом в кадре данных - PullRequest
0 голосов
/ 02 марта 2019

Мой фрейм данных имеет 4 столбца.Я хочу посчитать количество строк, в которых встречается значение '\ N'.Все столбцы данных имеют dtype: objects.В приведенном ниже примере счет будет равен 1 (1 строка, где встречается \ N).

df.episode enter image description here

Этоэто код, который не работал:

len(filter(lambda df: r'\N' in str(df.episode), rows))

Output Error: NameError: name 'rows' is not defined

Как бы я определил строки?Я не уверен, о чем идет речь.

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Не могли бы вы попробовать следующее.

Сначала импортируйте библиотеки numpy и pandas.

import pandas as pd
import numpy as np

Создайте сейчас фрейм данных, скопируйте образцы данных из поста ОП и выполните следующую команду длясоздайте df.

df=pd.read_clipboard()

1-е решение: подсчитать строки для \N, основываясь на комментариях @Jon Clements.

df.eq(r'\N').any(1).sum()

2-е решение: заменить на 2-й вопрос \N до NaN попробуйте выполнить следующее.

df['seasonNumber']=np.where(df.seasonNumber=='\\N',np.nan,df.seasonNumber)
df
0 голосов
/ 02 марта 2019

Вы хотите отфильтровать строки путем поиска столбцов, которые содержат символ \N Я предполагаю.

Если я посмотрю на ваш DataFrame, вы можете сделать следующее, чтобы получить строки, которые соответствуют:

df[df.episodeNumber.str.contains(r'\\N') | df.seasonNumber.str.contains(r'\\N')]

    tconst      parentTconst    seasonNumber    episodeNumber
2   tt0042889   tt0989125       \N              \N

Чтобы подсчитать количество строк, соответствующих этому условию, вы можете использовать .shape или len()

df[df.episodeNumber.str.contains(r'\\N') | df.seasonNumber.str.contains(r'\\N')].shape

len(df[df.episodeNumber.str.contains(r'\\N') | df.seasonNumber.str.contains(r'\\N')])

#Output
(1, 4)
1

Shape возвращает форму вашего фрейма данных, в этом случае (#rows, #columns)

Примечание Я добавил обратную косую черту \ перед \N, нам нужно буквально искать \N, только одна обратная косая черта в этом случае будет функционировать какescape-символ, поэтому нам нужно добавить секунду, когда мы хотим точное совпадение.

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