У меня есть то, что следует считать синтаксическим вопросом. Выполняем очистку данных там, где есть числовые поля, которые необходимо привести в порядок.
Так:
20,956
1,006,486
0
0
85,186
77,573
Иногда есть запятые, иногда несколько запятых, а иногда нет.
Мой простой разум говорит: «Найти и заменить» исправит это.
Это работает:
def fixComma(strIn):
return strIn.replace("," , "" )
dfAssetMeter_a['lastReadingflt'] = dfAssetMeter_a['LASTREADING'].apply(fixComma).astype(float)
Вопросы: Это способ сделать это на «Python»?
Кто-нибудь будет любезен предоставить правильный синтаксис для удаления запятых в строке.
Я думал, что что-то вроде этого сработает.
= dfAssetMeter_a['LASTREADING']. .replace("," , "" ) .astype(float)
См. также исследовательские работы .
Просмотр документов всегда хорошая идея. Pandas .replace
отличается от Python .replace
, поэтому необходимо использовать строковый аксессор Pandas .str.replace
.
Вы можете использовать аксессор str вместе с replace
и pandas.to_numeric:
import pandas as pd
df = pd.DataFrame(
{
"LASTREADING": [
"20,956",
"1,006,486",
"0",
"0",
"85,186",
"77,573",
]
}
)
df["lastReadingflt"] = pd.to_numeric(df["LASTREADING"].str.replace(",", ""))
LASTREADING lastReadingflt
0 20,956 20956
1 1,006,486 1006486
2 0 0
3 0 0
4 85,186 85186
5 77,573 77573
Я был близок, но сигары не было. Спасибо за ваш быстрый ответ. С наилучшими пожеланиями
Ваш последний фрагмент кода не содержит логического синтаксиса. Пожалуйста, потратьте некоторое время на форматирование ваших вопросов. Также, пожалуйста, приложите некоторые исследовательские усилия. Просто погуглив, скажем, «целое число с запятой в строке pandas», вы легко получите +10 поучительных сообщений SO. Ставьте лайк здесь , здесь или здесь.