Перетащите строку в pandas, если она содержит условие - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь удалить строки в pandas в зависимости от того, содержит ли он «/» в ячейках в столбце «Цена». Я сослался на вопрос: Удалить строки в pandas, если они содержат «???» .

Таким образом, я пробовал оба кода:

df = df[~df["Price"].str.contains('/')]

и

df = df[~df["Price"].str.contains('/',regex=False)]

Однако оба кода дают ошибку: AttributeError: Can only use .str accessor with string values!

Для справки, первые несколько строк моего dataframe выглядит следующим образом:

    Fruit   Price
0   Apple     3
1   Apple    2/3
2   Banana    2
3   Orange   6/7

Могу ли я узнать, что пошло не так, и как я могу исправить эту проблему? Спасибо большое!

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Вам нужно сначала преобразовать столбец цены в строку, а затем применить эту операцию. Я считаю, что в столбце цены нет строки типа

df['Price'] = df['Price'].astype(str)

, а затем попробуйте

df = df[~df["Price"].str.contains('/',regex=False)]
1 голос
/ 17 июня 2020

Попробуйте следующее:

df = df[~df['Price'].astype(str).str.contains('/')]
print(df)

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