2016-10-27 9 views
2

私はObject型の列を持っています。オブジェクトのプロパティに別の列にアクセスしたいのですが。オブジェクトのパンダと呼び出し関数

import pandas as pd 

class foo(object): 
    @property 
    def value(self): 
     return "bar" 


if __name__ == "__main__": 
    a = [foo(), foo(), foo()] 
    df = pd.DataFrame(data=a, columns=['test']) 
    df['value'] = df['test'].value 

これは、次のエラーで失敗します。新しい列を移入するために、クラスのプロパティまたは関数を呼び出す方法は

AttributeError: 'Series' object has no attribute 'value'

ありますか?

+0

何について: 'DF [ 'の値が'] = DF [ 'テスト']'? – MaxU

+0

これは、testと同じオブジェクトにカラム 'value'を設定するだけです。オブジェクトfooのプロパティ値をカラム値に取得することです:foo()。value to df ['value'] –

答えて

3
class foo(object): 
    @property 
    def value(self): 
     return "bar" 


if __name__ == "__main__": 
    a = [foo(), foo(), foo()] 
    df = pd.DataFrame(data=a, columns=['test']) 
    df['value'] = df['test'].apply(lambda x: x.value) 

df 

enter image description here

関連する問題