Как заменить ДЛИННУЮ строку текста в столбце, который является объектом dtype в pandas?

#python #pandas

#питон #панды

Вопрос:

У меня есть df («данные»), полный информации из IMDB, и я пытаюсь заменить строку текста для недоступных резюме на NaN. Я хотел начать с простого подсчета их, используя этот код:

 data[data['synopsis'=='\nIt looks like we don't have a Synopsis for this title yet. Be the first to contribute! Just click the "Edit page" button at the bottom of the page or learn more in the Synopsis submission guide.\n']].count()  

Но я получаю ключевую ошибку. У меня есть подозрение, что это из-за dtype?

Я попытался преобразовать столбец синопсиса из объекта в строку, но безрезультатно, используя этот код:

 data['synopsis'] = data['synopsis'].apply(str)  

и этот код:

 pd.Series('synopsis').astype('str')  

Но когда я смотрю на информацию, ничего не меняется. Однако мне удалось преобразовать StartYear в datetime.

 lt;class 'pandas.core.frame.DataFrame'gt; Int64Index: 27007 entries, 0 to 31893 Data columns (total 17 columns):  # Column Non-Null Count Dtype  --- ------ -------------- -----   0 tconst 27007 non-null object   1 titleType 27007 non-null object   2 primaryTitle 27007 non-null object   3 originalTitle 27007 non-null object   4 isAdult 27007 non-null int64   5 startYear 27007 non-null datetime64[ns]  6 endYear 27007 non-null object   7 runtimeMinutes 27007 non-null object   8 genres 27007 non-null object   9 storyline 20362 non-null object   10 synopsis 27007 non-null object   11 countries_of_origin 26640 non-null object   12 budget 11295 non-null object   13 opening_weekend 771 non-null object   14 production_company 19478 non-null object   15 rating 13641 non-null float64   16 number_of_votes 13641 non-null object  dtypes: datetime64[ns](1), float64(1), int64(1), object(14) memory usage: 4.7  MB  

Я новичок во всем этом-что я делаю не так?

Ответ №1:

Вы поставили скобку не в то место в строке фильтра. Ты хочешь закрыться df[df['synopsis']==...] .

И я считаю, что pandas использует object в качестве dtype для строк, поэтому правильно, что он говорит object .