У меня есть файлы ниже формата в текстовом файле, который я пытаюсь прочитать в dataframe pandas.Точность, потерянная при использовании read_csv в pandas
895|2015-4-23|19|10000|LA|0.4677978806|0.4773469340|0.4089938425|0.8224291972|0.8652525793|0.6829942860|0.5139162227|
Как вы можете видеть, что есть целые после плавающей запятой в файле ввода.
df = pd.read_csv('mockup.txt',header=None,delimiter='|')
Когда я пытаюсь читать в dataframe, я не получаю последние 4 целых числа
df[5].head()
0 0.467798
1 0.258165
2 0.860384
3 0.803388
4 0.249820
Name: 5, dtype: float64
Как я могу получить полную точность, как в файле ввода? У меня есть некоторые операции с матрицей, которые необходимо выполнить, поэтому я не могу использовать ее как строку.
Я понял, что должен что-то сделать с dtype
, но я не уверен, где его следует использовать.
Спасибо. Был еще один вопрос новобранец. Есть ли вообще рекомендация для более быстрой загрузки в кадр данных при использовании read_csv(), когда данные являются в основном значениями с плавающей запятой. –
Я думаю, вы можете попробовать установить 'dtypes', [см.] (Http://stackoverflow.com/q/15210962/2901002). – jezrael
Возможно, стоит отметить, что это не * чисто * проблема отображения, в том смысле, что если вы используете Pandas для записи данных в CSV-файл, а затем снова читаете его, вы можете получить небольшую плавающую - точечные ошибки в результате: Pandas использует выделенный десятичный двоичный преобразователь, который жертвует идеальной точностью ради скорости. Передача 'float_precision = 'round_trip'' в' read_csv' исправляет это. Подробнее см. В [документации] (http://pandas.pydata.org/pandas-docs/stable/io.html#specifying-method-for-floating-point-conversion). –