Почему этот ряд Панд, где функция не возвращает никаких значений? - PullRequest
1 голос
/ 27 мая 2019

Я использую библиотеку Pandas в Python и испытываю некоторые затруднения с получением ожидаемых результатов от фильтрации определенной серии в рамках Dataframe:

csdf[0].unique()

возвращает:

array(['GWA_BTC', 'GWA_ETH', 'GWA_LTC', 'GWA_XLM', 'GWA_XRP',
       'MWA_BTC_CNY', 'MWA_BTC_EUR', 'MWA_BTC_GBP', 'MWA_BTC_JPY',
       'MWA_BTC_USD', 'MWA_ETH_CNY', 'MWA_ETH_EUR', 'MWA_ETH_GBP',
       'MWA_ETH_JPY', 'MWA_ETH_USD', 'MWA_LTC_CNY', 'MWA_LTC_EUR',
       'MWA_LTC_GBP', 'MWA_LTC_JPY', 'MWA_LTC_USD', 'MWA_XLM_CNY',
       'MWA_XLM_EUR', 'MWA_XLM_USD', 'MWA_XRP_CNY', 'MWA_XRP_EUR',
       'MWA_XRP_GBP', 'MWA_XRP_JPY', 'MWA_XRP_USD'], dtype=object)

Но когда ясделать это:

csdf[0].where(lambda x: x[0:3] == 'GWA').dropna()

Я получаю:

Series([], Name: 0, dtype: object)

Я пытаюсь получить все значения в серии, которые начинаются с "GWA".

Ответы [ 2 ]

2 голосов
/ 27 мая 2019

Вы должны сделать:

csdf[0].where(csdf[0].str[0:3] == 'GWA').dropna()
1 голос
/ 27 мая 2019

Вы можете попробовать использовать функцию запускается с для серии.

filtered = csdf[csdf[0].str.strartswith("GWA", na=False)]

...