2017-09-26 6 views
1

私はパンダがリストや辞書を個々のセルに格納するのに「うまくいきません」と聞いたことがありますが、の詳細についてはわかりません。なぜならです。多くのユースケースでは、辞書のように、より複雑なデータ構造をPandasセルに格納するのは非常に便利です。これを「パンダ式」のやり方でどうやって行うのですか?これはすべての変更可能なデータ構造に適用されますか?DataFramesに格納する 'panda-esque'データ構造とは何ですか?

+4

dtypeがスカラー値でない場合、ベクトル演算を実行する可能性がなくなるためです。変更可能なデータ構造とは何の関係もありません。あなたが得られるのは、列と行を検索する際の柔軟性だけですが、例えばリストを含む列の値を検索する場合、単純な 'df ['col'] =ではなくすべての行とテストを反復処理する必要があります= some_val' – EdChum

+0

ディクショナリではパンダで、辞書要素ではいくつかのデータフレームで同様の操作をすることを想像してください。 –

答えて

0

@EdChumが正しいので、これはおそらくあなたが探しているものではありません。非常に単純に、非スカラーオブジェクトをpd.Seriespd.DataFrameのセルに配置する正当な理由はほとんどありません。

はあなたが埋め込まれた辞書を使用して、オフに優れているデータフレームdf

d1 = dict(a=1, b=2, c=3) 
d2 = dict(d=1, e=2, f=3) 
d3 = dict(g=1, h=2, i=3) 
d4 = dict(j=1, k=2, l=3) 
d5 = dict(m=1, n=2, o=3) 
d6 = dict(p=1, q=2, r=3) 

df = pd.DataFrame(dict(
    A=[d1, d2, d3], 
    B=[d4, d5, d6] 
)) 

df 

          A       B 
0 {'a': 1, 'b': 2, 'c': 3} {'j': 1, 'k': 2, 'l': 3} 
1 {'d': 1, 'e': 2, 'f': 3} {'m': 1, 'n': 2, 'o': 3} 
2 {'g': 1, 'h': 2, 'i': 3} {'p': 1, 'q': 2, 'r': 3} 

考えてみましょう。

d = df.to_dict() 

d['A'][0] 

{'a': 1, 'b': 2, 'c': 3} 

あなたがそれらを行または列単位操作したい場合は、次にあなたがこの新しいに値を変換することができますが、さらに

from cytoolz.dicttoolz import merge 

class dict_(dict): 
    def __init__(self, *args, **kwargs): 
     super().__init__(*args, **kwargs) 

    def __add__(self, other): 
     return dict_(merge(self, other)) 

を定義dictのサブクラスを書くことができますクラスと...

df.applymap(dict_).sum() 

A {'a': 1, 'b': 2, 'c': 3, 'd': 1, 'e': 2, 'f': ... 
B {'j': 1, 'k': 2, 'l': 3, 'm': 1, 'n': 2, 'o': ... 
dtype: object 

または

df.applymap(dict_).sum(1) 

0 {'a': 1, 'b': 2, 'c': 3, 'j': 1, 'k': 2, 'l': 3} 
1 {'d': 1, 'e': 2, 'f': 3, 'm': 1, 'n': 2, 'o': 3} 
2 {'g': 1, 'h': 2, 'i': 3, 'p': 1, 'q': 2, 'r': 3} 
dtype: object 

たり、ちょっと楽しいnumpyのオブジェクト配列

df.applymap(dict_).values.sum() 

{'a': 1, 
'b': 2, 
'c': 3, 
'd': 1, 
'e': 2, 
'f': 3, 
'g': 1, 
'h': 2, 
'i': 3, 
'j': 1, 
'k': 2, 
'l': 3, 
'm': 1, 
'n': 2, 
'o': 3, 
'p': 1, 
'q': 2, 
'r': 3} 

を入手!どのように "パンダ - エスク"は、それが好きかわからないが、私はそれが好きです。

関連する問題