0

Veri türünü dönüştürmeyi denediğim veri çerçevem ​​var.Öneri gerekiyor: pandalarda veri nesnelerini dönüştürün

In [5]: 
df = pd.io.json.json_normalize(data) 
df.head() 
Out[5]: 
      a  b  c  d   e   f  g  
2014-09-10 5.38 5.45 5.35 1769 10000002 34 6651569991 
2014-09-11 5.44 5.48 5.38 1863 10000002 34 8147338425 
2014-09-12 5.35 5.45 5.32 1792 10000002 34 10549259297 
2014-09-13 5.41 5.48 5.3099 2136 10000002 34 9408246021 
2014-09-14 5.43 5.47 5.39 2174 10000002 34 9385610951 

In [6]: 
df.dtypes 
Out[6]: 
a object 
b object 
c object 
d object 
e object 
f object 
g object 
dtype: object 

17,0 güncellemesi Önce ben çözümden elde: şimdi harika çalıştı, ancak df = df.convert_objects(convert_numeric=True) kullanımdan kaldırıldı. Şimdi kullanıyorum: pd.to_numeric(df, errors='ignore') ama hata arg must be a list, tuple, 1-d array, or Series olsun.

for col in df: df[col] = pd.to_numeric(pd.Series(df[col]), errors='ignore')

Bunu yapmanın en iyi yolu mu:

uğraşırken sonra ben dönüşüm için tek boyutlu dizi uygun olması ben pandalar serisini kullanmak ve her sütunu yineleme aşağıdaki solüsyon ile gelip başardı dönüşüm ya da daha zarif bir çözüm var mı? Ben hala başımı Pandalar etrafında alıyorum gibi soruyorum ve belki de net bir cevap bulamadığım için birisi için yararlı olacaktır.

+0

df = df.apply (lambda x: pd.to_numeric (x) ekseni = 0) -> Aradığınız olsun edecektir. – Abbas

cevap

1

apply işlevini kullanın.

In [34]: df = df.apply(lambda x: pd.to_numeric(x), axis=0) 

In [36]: df.dtypes 
Out[36]: 
a float64 
b float64 
c float64 
d  int64 
e  int64 
f  int64 
g  int64 
dtype: object 
+0

Bir çekicilik gibi çalışır. Teşekkürler, – Trm

+1

'df.apply (pd.to_numeric)' ı bilmek de güzeldi burada da çalışmalı – EdChum

İlgili konular