2016-06-11 12 views
3

私はPandasを使ってデータフレームに変換したcsvファイルを持っています。ここではデータフレームです:Pythonでデータフレームを辞書に変換する

Customer ProductID Count 

John  1   50 
John  2   45 
Mary  1   75 
Mary  2   10 
Mary  5   15 

私はこのようになります辞書の形式で出力する必要があります。

{ProductID:1, Count:{John:50, Mary:75}}, 
{ProductID:2, Count:{John:45, Mary:10}}, 
{ProductID:5, Count:{John:0, Mary:15}} 

私は、次の答えを読む:

python pandas dataframe to dictionary

Convert dataframe to dictionary

これは私がいるコードです:

df = pd.read_csv('customer.csv') 
dict1 = df.set_index('Customer').T.to_dict('dict') 
dict2 = df.to_dict(orient='records') 

と、これは私の現在の出力です:あなたが使用できる

dict1 = {'John': {'Count': 45, 'ProductID': 2}, 'Mary': {'Count': 15, 'ProductID': 5}} 

dict2 = [{'Count': 50, 'Customer': 'John', 'ProductID': 1}, 
{'Count': 45, 'Customer': 'John', 'ProductID': 2}, 
{'Count': 75, 'Customer': 'Mary', 'ProductID': 1}, 
{'Count': 10, 'Customer': 'Mary', 'ProductID': 2}, 
{'Count': 15, 'Customer': 'Mary', 'ProductID': 5}] 

答えて

4

IIUC:

d = df.groupby('ProductID').apply(lambda x: dict(zip(x.Customer, x.Count))) 
     .reset_index(name='Count') 
     .to_dict(orient='records') 

print (d) 
[{'ProductID': 1, 'Count': {'John': 50, 'Mary': 75}}, 
{'ProductID': 2, 'Count': {'John': 45, 'Mary': 10}}, 
{'ProductID': 5, 'Count': {'Mary': 15}}] 
関連する問題