0
この質問は、hereと似ていますが、タプルのインデックスがあります。 リストの列をグループ化すると、単一のインデックスのために正常に動作します:2番目のインデックスは、もはや作品添加しない、しかしpandas groupby:タプルインデックスを持つリストを集約する
:
mydata = [{'idx': 'A', 'idx2': 'B', 'list_str': ['hi', 'babe']},
{'idx': 'A', 'idx2': 'B', 'list_str': ['take', 'a', 'walk']},
{'idx': 'A', 'idx2': 'B', 'list_str': []},
{'idx': 'B', 'idx2': 'C', 'list_str': ['on', 'the', 'wild', 'side']}]
df = pd.DataFrame(mydata)
grouped = df.groupby(('idx', 'idx2'))
print(grouped.agg({'list_str': sum}))
が与える期待される出力と
mydata = [{'idx': 'A', 'list_str': ['hi', 'babe']},
{'idx': 'A', 'list_str': ['take', 'a', 'walk']},
{'idx': 'A', 'list_str': []},
{'idx': 'B', 'list_str': ['on', 'the', 'wild', 'side']}]
df = pd.DataFrame(mydata)
grouped = df.groupby('idx')
print(grouped.agg({'list_str': lambda x: tuple(x)}))
a ValueError
,Function does not reduce
。
これを行う適切な方法は何ですか?複数の列によってグループ化するには
を、あなたは、コードを試したことがありますか?これは実際には同じ正確なエラーを与えます。 – nbubis
あなたが入力したものを使って試しました。 groupbyコールでタプル '()'の代わりにリスト '[]'を使用しましたか?または、入力データが1つのタプルのインデックスではなく2つの別々のインデックスを持つという点で、誤ったデータが入力されていますか? – jack6e
と同じ 'mydata'変数と 'df = pd.DataFrame(mydata);を使用します。 grouped = df.groupby(['idx'、 'idx2']); print(grouped.agg({'list_str':sum})) 'は、pandasバージョン0.19.2を使って同じエラーを返します。 – nbubis