pandas.isin сломан для всех заглавных букв? - PullRequest
0 голосов
/ 17 января 2019

Я нашел функцию isin для панд, но похоже, что все заглавные буквы не отображаются?

import pandas as pd
df = pd.read_json('{"Technology Group":{"0":"Cloud","1":"Cloud","2":"Cloud","3":"Collaboration","4":"Collaboration","5":"Collaboration","6":"Collaboration","7":"Collaboration","8":"Collaboration","9":"Core", "10": "Software"},"Technology":{"0":"AMP","1":"EWS","2":"Webex","3":"Telepresence","4":"Call Manager","5":"Contact Center","6":"MS Voice","7":"Apps","8":"PRIME  ","9":"Wirelees", "10": "Prime Infrastructure"}}')

+------------------+----------------------+
| Technology Group | Technology           |
+------------------+----------------------+
| Cloud            | AMP                  |
+------------------+----------------------+
| Cloud            | EWS                  |
+------------------+----------------------+
| Cloud            | Webex                |
+------------------+----------------------+
| Collaboration    | Telepresence         |
+------------------+----------------------+
| Collaboration    | Call Manager         |
+------------------+----------------------+
| Collaboration    | Contact Center       |
+------------------+----------------------+
| Collaboration    | MS Voice             |
+------------------+----------------------+
| Collaboration    | Apps                 |
+------------------+----------------------+
| Collaboration    | PRIME                |
+------------------+----------------------+
| Core             | Wirelees             |
+------------------+----------------------+
| Software         | Prime Infrastructure |
+------------------+----------------------+

tech_input2 = ['AMP', 'Call Manager', 'PRIME']
df = df[df['Technology'].isin(tech_input2)]

Появится следующая таблица:

+------------------+--------------+
| Technology Group | Technology   |
+------------------+--------------+
| Cloud            | AMP          |
+------------------+--------------+
| Collaboration    | Call Manager |
+------------------+--------------+

... вместо:

+------------------+--------------+
| Technology Group | Technology   |
+------------------+--------------+
| Cloud            | AMP          |
+------------------+--------------+
| Collaboration    | Call Manager |
+------------------+--------------+
| Collaboration    | PRIME        |
+------------------+--------------+

Это ошибка? Или я сделал что-то не так? Технически это не дубликат исходной последней строки таблицы, но не уверен, как ее расшифровать. Кажется, он действует как содержит , чем isin ...

1 Ответ

0 голосов
/ 17 января 2019

Это может быть связано с пробелами. strip () удаляет символы как слева, так и справа на основе аргумента (строка, определяющая набор символов, которые нужно удалить).

import pandas as pd
df = pd.read_json('{"Technology Group": {"0":"Cloud","1":"Cloud", 
"2":"Cloud","3":"Collaboration", "4":"Collaboration" ,":"Collaboration", 
"6":"Collaboration", "7":"Collaboration","8":"Collaboration","9":"Core", 
"10": "Software"},"Technology":{"0":"AMP","1":"EWS","2":"Webex","3":"Telepresence",
"4":"Call Manager","5":"Contact Center","6":"MS Voice","7":"Apps","8":"PRIME  
","9":"Wirelees", "10": "Prime Infrastructure"}}')

df['Technology'] = df['Technology'].str.strip()
tech_input2 = ['AMP', 'Call Manager', 'PRIME']
df = df[df['Technology'].isin(tech_input2)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...