#python #pandas #csv
Вопрос:
я очень новичок в Python и программировании, поэтому, пожалуйста, объясните это просто. Я хочу написать код, который может уменьшить количество десятичных знаков в одном столбце в середине csv-файла. Я знаю, что большая часть этого кода неверна, но я застрял, поэтому, пожалуйста, помогите и объясните мне, как сделать его лучше.
import pandas as pd
File = pd.read_csv("D:filesTest2.csv",encoding = 'latin1',usecols = ["number"])
roundednumber = round (file, 10)
remaining = pd.read_csv("D:fileTest2.csv",encoding = 'latin1',usecols = ["Name", "Age", "Location"])
Output = remaining, rounded number
Output.to_csv("D:filesTest2Ausgabe.csv")
Ответ №1:
Это должно сработать для столбца с именем ColumnName:
File['ColumnName'] = File['ColumnName'].round()
Вышесказанное не округляется до знаков после запятой. Это значение округлится до двух знаков после запятой:
File['ColumnName'] = File['ColumnName'].round(2)
В ответ на ваш комментарий ниже, спрашивающий, как округлить столбец с именем «Число» до 8 знаков после запятой и присвоить его старому фрейму данных, вы можете сделать следующее:
File['Number'] = File['Number'].round(8)
Комментарии:
1. Первая проблема: я могу получить только 6 знаков после запятой, я пробовал с 8 и 10, и это работает только с 6 или ниже Вторая проблема: я не знаю, как заменить старые числа новыми
2. Мое последнее редактирование должно решить вашу вторую проблему. Я не уверен, что понял вашу первую колонку. @Vinstand
3. Я все еще не понимаю этого. Например, у меня есть следующие столбцы: номер,имя,возраст,местоположение. Затем я округляю номер столбца, чтобы получить 8 знаков после запятой. Как я могу записать новые числа в свой старый csv-файл со всеми остальными столбцами, чтобы у меня был один файл с 4 столбцами, а в моем столбце чисел было только 8 знаков после запятой?
4. @Vinstand только что изменил мой ответ в ответ на ваши комментарии.
5. @Vinstand: ваш старый CSV-файл не будет изменен, если вы не запишете измененный фрейм данных обратно на диск с помощью
File.to_csv('yourfilename.csv')
. Я бы предложил создать новый файл вместо перезаписи исходного файла, чтобы избежать возможной потери данных.