исходные данные Я работаю над df ниже, но не могу применить фильтр в процентном поле, но он работает нормально в Excel. Мне нужно применить условие фильтра> 100,00% в конкретном поле с помощью панд.

Я попытался прочитать его из HTML, CSV и Excel в пандах, но не смог использовать условие. требует преобразования с плавающей запятой, но не работает с данными

0
pythonlearner 21 Мар 2019 в 13:24

2 ответа

Лучший ответ

Я предполагаю, что значения, которые вы имеете, читаются как строки в Pandas:

data = ['4,700.00%', '3,900.00%', '1,500.00%', '1,400.00%', '1,200.00%', '0.15%', '0.13%', '0.12%', '0.10%', '0.08%', '0.07%']

df = pd.DataFrame(data)
df.columns = ['data']

Печать df:

       data
0   4,700.00%
1   3,900.00%
2   1,500.00%
3   1,400.00%
4   1,200.00%
5      0.15%
6      0.13%
7      0.12%
8      0.10%
9      0.08%
10     0.07%

Тогда:

df['data'] = df['data'].str.rstrip('%').str.replace(',','').astype('float')
df_filtered = df[df['data'] > 100]

Полученные результаты:

     data
0  4700.0
1  3900.0
2  1500.0
3  1400.0
4  1200.0
3
Tabbakhh 21 Мар 2019 в 11:27

Я также использовал приведенный ниже код .str.rstrip('%') и .str.replace(',','').astype('float') он работает нормально

0
pythonlearner 21 Мар 2019 в 11:03