CSV verilerini alan ve pandas to_dict işlevini, verileri JSON'a dönüştürmenin son hedefine yönelik adımlardan biri olarak kullanan bir işlevle uğraştım. Sorun, sayıların modifiye edilmesidir (ör. 1.6, 1.600000000000000001 olur). Doğruluk kaybından endişe duymuyorum, fakat kullanıcılar sayılardaki değişimi göreceklerinden, amatör gibi görünüyor.Pandalar to_dict sayıları değiştiriyor
Buranın here'dan önce ortaya çıkmış bir şey olduğunun farkındayım, ama 2 yıl önceydi, gerçekten harika bir şekilde yanıtlanmadı ve ek bir komplikasyonum var - veri çerçevelerini sözlüklere dönüştürmek istiyorum veri tipleri herhangi bir kombinasyonu olabilir. önceki çözümlerle böyle bir konu olarak şunlardır:
- nesnelere bütün numaraları dönüştürme sadece numaraları kullanmak gerekmiyorsa çalışır - Ben eklenmesi ondalık sorunu reintroduces toplamları ve ortalamaları hesaplamak için seçenek istiyorum x ondalık sayıların
- Kuvvet yuvarlama doğruluğunu azaltır veya yüksek düzeyde, Yani
sağlar verilere kullanıcıyı bağlı olarak ek gereksiz tane 0 katacak ya sorum şu:
mi var en iyi yol sayıların değiştirilmediğinden emin olmak için sayısal bir veri türü içinde tutuluyor mu? CSV verilerini ilk olarak nasıl içe aktardığımı değiştirmek sorun mu? Elbette baktığım basit bir çözüm var mı?
import pandas as pd
import sys
if sys.version_info[0] < 3:
from StringIO import StringIO
else:
from io import StringIO
CSV_Data = "Index,Column_1,Column_2,Column_3,Column_4,Column_5,Column_6,Column_7,Column_8\nindex_1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8\nindex_2,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8\nindex_3,3.1,3.2,3.3,3.4,3.5,3.6,3.7,3.8\nindex_4,4.1,4.2,4.3,4.4,4.5,4.6,4.7,4.8"
input_data = StringIO(CSV_Data)
df = pd.DataFrame.from_csv(path = input_data, header = 0, sep=',', index_col=0, encoding='utf-8')
print(df.to_dict(orient = 'records'))
Neden 'df.to_json (şark = 'kayıtları')' kullanmaz kullanan, yinelemeli JSON içine rasgele bir nesneye dönüştürür? – Zero
@JohnGalt Temel olarak, sütunların dinamik yerleştirilmesine izin vermek için, to_dict kullanarak oluşturduğum sözlük, oluşturduğum daha büyük bir sözlüğe eklenir ve sonunda bir JSON'a gönderilir. –
'pd.io.json.dumps (nested_dicts_with_pd_objects)' işlevini kullanabilirsiniz, bu sizin için çalışıyor mu? İdeal olarak, yuvarlama senaryosunu tanıtmamalı. – Zero