python pandas loc возвращает пустой фрейм данных - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь получить подмножество данных, используя следующий код:

dprev = "eiffel tower"

df.loc[df['place'] == dprev] -> returns empty

drandom = random.choice(df['place'].unique())

df.loc[df['place'] == drandom] -> returns the subset

Почему я не вижу то же самое, когда dprev является строковой переменной?

Ответы [ 3 ]

0 голосов
/ 01 июня 2018

Можете ли вы попробовать использовать str.contains с case=False

Пример:

import pandas as pd

dprev = "eiffel tower"
df = pd.DataFrame({"place": ["eiffel tower", "Eiffel tower", "Hello"], "data":[1,2,3]})
print(df.loc[df['place'].str.contains(dprev, case=False)])

Выход:

   data         place
0     1  eiffel tower
1     2  Eiffel tower
0 голосов
/ 01 июня 2018

Попробуйте следующим образом:

dprev = "eiffel tower"
df = df.loc[df['place'].str.lower() == dprev]

или:

df = df.loc[df['place'].str.lower().str.contains(dprev)]
0 голосов
/ 01 июня 2018

для этого вам не нужно использовать df.loc

dprev = "eiffel tower"

df[df['place'] == dprev] 

См. Этот ответ

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