поэтому у меня есть очень простой скрипт для панд, который я использую для замены значений в Excel другими значениями.Существует один столбец (Fm), который не работает, когда я пытаюсь заменить числовые значения.Столбец Fm dtype является объектом.Но это просто не будет работать, когда я пытаюсь заменить значение 350 (прокомментировал в моем коде строку), но все остальное работает.Я не могу прикрепить файл к stackoverflow и не чувствую себя комфортно при создании ссылки, потому что я нахожусь на рабочей машине.Кто-нибудь видел проблему такого рода?
import pandas as pd
import numpy as np
data = pd.read_excel("2.27.xlsm", encoding = "ISO-8859-1", dtype=object)
data.loc[data.F == 'DBD', 'F'] = 'BFD'
data.loc[data.Fm == '350', 'Fm'] = 'test' # this line does not work
data.loc[data.Fm == 'B25', 'F'] = 'BFD'
data.loc[data.Fm == 'B50', 'F'] = 'BFD'
writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
data.to_excel(writer, sheet_name='Sheet1')
writer.save()
Name: Fm, Length: 1521, dtype: object
- Извините, у меня есть вторая часть этого вопроса, начинающаяся здесь ниже, поскольку строки 7-8, по-видимому, сводят на нет 1-6? -----
Привет, у меня есть пример сценария ниже, который я запускаю в файле Excel.По существу, после строка 6 Я хочу отфильтровать строки, содержащие BFD и SFD в столбце F (я знаю, что только что присвоил эти значения в приведенном выше коде, и другие из этих значений также существовали вразные строки до сценария).После этого просто примените логику в строках 7-8 к фрейму данных.Поэтому, по сути, вы используете pandas для фильтрации строк по значению ячейки в столбце, затем применяете логику к тому, что не было отфильтровано, а затем просто не фильтруете все (как если бы вы должны были очистить фильтры в Excel), и мой фрейм данных был готов к работе
import pandas as pd
import numpy as np
data = pd.read_excel("2.27.xlsm", encoding = "ISO-8859-1", dtype=object)
data.loc[data.F == 'DBD', 'F'] = 'BFD'
data.loc[data.F == 'DUB', 'F'] = 'BFD'
data.loc[data.F == 'DCD', 'F'] = 'SFD'
#Now I want to apply this logic and filter out any rows that have values of BFD or SF in column F and then apply to logic below (to not overwrite any work done above)
data.loc[data.Fm == 'B25', 'F'] = 'BFD'
data.loc[data.Fm == 'B50', 'F'] = 'BFD'
writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
data.to_excel(writer, sheet_name='Sheet1')
writer.save()