Измените значение int на формат .00 - PullRequest
0 голосов
/ 11 июля 2020

У меня есть фрейм данных -

   year  month             type   amount
0  2019  9          Not Applicable    8000.00       
1  2019  10         Not Applicable    7500.00       
2  2019  11         Goods & Services  14000.35      
3  2019  11         Not Applicable    7500.00       
4  2019  12         Goods & Services  10499.00      
5  2019  12         Not Applicable    9801.00   

У меня полностью округлено количество столбцов, но я хочу преобразовать месяц другого столбца в этот формат, например:

   year  month             type   amount
0  2019  9.00          Not Applicable    8000.00       
1  2019  10.00         Not Applicable    7500.00       
2  2019  11.00         Goods & Services  14000.35      
3  2019  11.00         Not Applicable    7500.00       
4  2019  12.00         Goods & Services  10499.00      
5  2019  12.00         Not Applicable    9801.00   

Как я могу достичь этого.

Ответы [ 3 ]

3 голосов
/ 11 июля 2020
df.month = df.month.astype(float)

или

df['month'] = df['month'].astype(float)
2 голосов
/ 11 июля 2020

Терминология здесь является ключевой. Если вы просто хотите изменить «формат» в своем блокноте jupyter - что не влияет на отправку в Excel - тогда ответ @SurajSubramanian должен быть принятым решением. Если вы просто хотите изменить формат столбца на формат float, тогда ответ @ nav610 правильный, но заголовок вашего вопроса, в частности, « Изменить значение int на формат .00 »

Итак, я уже упоминал, что терминология является ключевой, потому что если вы действительно хотите изменить базовое значение, чтобы оно заканчивалось на .00, тогда ваш единственный вариант - преобразовать его в строку, например:

df['month'] = df['month'].astype(str) + '.00'

        year    month   type                 amount
0       2019    9.00    Not Applicable       8000.00
1       2019    10.00   Not Applicable       7500.00
2       2019    11.00   Goods & Services     14000.35
3       2019    11.00   Not Applicable       7500.00
4       2019    12.00   Goods & Services     10499.00
5       2019    12.00   Not Applicable       9801.00

См. Мои комментарии к некоторым ответам, чтобы узнать больше о контексте, но ответ заключается в том, что лучшее решение действительно зависит от вашего фактического варианта использования.

2 голосов
/ 11 июля 2020

Для преобразования в число с плавающей запятой с двумя десятичными знаками:

df['month'] = df['month'].astype('float').map('{:,.2f}'.format)
df['month']

Вывод:

0     9.00
1    10.00
2    11.00
3    11.00
4    12.00
5    12.00
...