2016-09-09 7 views
6

私のパンダのデータにユニットを管理する良い方法があるかどうかを判断しようとしています。例えば、私はこのようになりますDataFrameを持っている:パンダのデータをどのように管理できますか?

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 

現在、測定ユニットはカラム名でエンコードされています。欠点は、次のとおりです。

  1. 列選択が厄介である - df['width (m)']df['width']

私の元データの変更の単位は、私は外のユニットを除去したい場合ならばそう壊れる

  • もの情報が格納されている可能性がありますか?

  • +1

    私はシリーズ/辞書に保存するのが最善の方法だと思います。これらの2つを何らかの形でリンクしたい場合は、属性を追加できます( 'df.units = pd.Series({'length': 'm'、 'width': 'm'、 'thickness': 'cm'})) ') - これは危険ですが。 – ayhan

    答えて

    5

    githubの問題hereの説明を参照してください。

    素早いハックとして、このようなことをすることができ、ユニットと別の辞書を維持できます。

    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

    dtypeのようなものがありますが、任意の単位のものがあればどうなりますか? –

    関連する問題