Python стр. Содержит несогласованные результаты - PullRequest
0 голосов
/ 05 мая 2020

Я работаю с большой базой данных и тестирую свой код на меньшем образце большой базы данных. Я хочу знать, сколько строк содержат заданную строку (search_term) в каждом столбце. Например, в столбце 1 «балун» отображается в 20 строках, в столбце 2 «балун» отображается в 4 строках, et c.

Вот мой код:

#reading csv spreadsheet
data_set = pd.read_csv("~/Documents/test_sample.csv")

#establishing data frame
df = pd.DataFrame(data_set)

#establishing variables for function
columns = df.columns
search_term = "balloon"

#function, summing rows that contain the search term for each column while ignoring case
for column in columns:
    count = df[column].astype(str).str.contains(search_term, flags=re.IGNORECASE, na=False).sum()
    print (column, " has ", count, " rows containing ", search_term)

вывод:

COLUMN_1 имеет 0 строк, содержащих балун

COLUMN_2 имеет 11 строк, содержащих балун

COLUMN_3 имеет 0 строк, содержащих балун

COLUMN_4 имеет 0 строк содержащий балун

COLUMN_5 имеет 48 строк, содержащих балун

COLUMN_6 имеет 0 строк, содержащих балун

COLUMN_7 имеет 0 строк, содержащих балун

COLUMN_8 имеет 0 строк, содержащих балун

COLUMN_9 имеет 0 строк, содержащих балун

Проблема:

Подсчет столбца_5 правильный (48), но счетчик столбца_2 выключен в 100 раз (реальное значение 1100 ), а другие столбцы содержат «баллон», но все равно считаются равными нулю.

Я применил это и к другим файлам csv, и, похоже, дает сочетание правильных и неправильных результатов. Есть идеи, почему это так и как я могу это исправить?

Спасибо!

...