2016-09-09 19 views
6

pandas verilerimde adet'u yönetmenin iyi bir yolu olup olmadığını anlamaya çalışıyorum. Örneğin, ben şöyle bir DataFrame vardır:Pandalar verilerindeki birimleri nasıl yönetebilirim?

length (m) width (m) thickness (cm) 
0   1.2  3.4    5.6 
1   7.8  9.0    1.2 
2   3.4  5.6    7.8 

Halen ölçü birimlerini sütun adları kodlanıyor. Downsides şunlardır:

  1. sütun seçimi garip - df['width (m)'] vs df['width']

benim kaynak veri değişim birimleri ben dışarı birimlerini şerit isteseydi eğer olasılıkla kıracak

  • şeyler sütun isimleri, bilgilerin saklanabileceği başka bir yer var mı?

  • +1

    Bunu bir dizide/sözlüğünde depolamanın en iyi yolu olacağını düşünüyorum. Bu ikisini bir şekilde bağlamak isterseniz, bir özellik ekleyebilirsiniz ('df.units = pd.Series ({'length': 'm', 'width': 'm', 'thickness': 'cm'}) ') - Bu tehlikeli olsa da olabilir. – ayhan

    cevap

    5

    Şu anda bunun için harika bir yol yok, bazı tartışmalar için github issue here konusuna bakın.

    Hızlı bir şekilde kesmek için, böyle bir şey yapabilir, ünitelerle ayrı bir dikte kurabilirsiniz.

    In [3]: units = {} 
    
    In [5]: newcols = [] 
        ...: for col in df: 
        ...:  name, unit = col.split(' ') 
        ...:  units[name] = unit 
        ...:  newcols.append(name) 
    
    In [6]: df.columns = newcols 
    
    In [7]: df 
    Out[7]: 
        length width thickness 
    0  1.2 3.4  5.6 
    1  7.8 9.0  1.2 
    2  3.4 5.6  7.8 
    
    In [8]: units['length'] 
    Out[8]: '(m)' 
    
    +0

    Ya sadece bir dtype gibi bir şey var, ancak keyfi birimler için? –