2017-10-26 4 views
1

私はこのような入力データを持って、csvファイルでCSVファイルに書き込むときにPythonでグループ名の列名を表示する方法は?

ID days 
1 02 
1 24 
2 12 
3 10 

期待される結果は、私のコードで

ID Avg. days 
1 13 
2 12 
3 10 

する必要があり、私はIDを取得することができ、唯一の平均値を取得することはできませんよ。しかし私はそれが両方必要です。

ID = tempx.groupby('ID')['days'].mean() 
ID.to_csv("file1.csv", sep=',',encoding='utf-8',index = False) 

誰でも結果をグループ化してヘッダーとして取得する方法を教えてください。

答えて

1

.groupby('ID')セット'ID'を渡さないでください。このようなあなたのファイルを保存し、次のいずれか... as_index = False

ID = tempx.groupby('ID', as_index = False)['days'].mean() 
ID.to_csv("file1.csv", sep=',',encoding='utf-8',index = False) 
+0

親愛なりますKenさん、サポートありがとうございました index = Falseを削除した後で動作しています今は私のcsvファイルのヘッダーを見ることができます – Sekhar

+0

@Sekharこのユーザーの答えが灰色のチェックをクリックして_accept_してくださいそれは緑に。 –

1

私はあなたがパラメータnamereset_indexが必要だと思う:

ID = tempx.groupby('ID')['days'].mean().reset_index(name='Avg. days') 
print (ID) 
    ID Avg. days 
0 1   13 
1 2   12 
2 3   10 

ID.to_csv("file1.csv", sep=',',encoding='utf-8',index = False) 
2

指標とindex=False

tempx.groupby('ID').days.mean().to_frame('Avg. days').to_csv(
    'file.csv', encoding='utf-8') 
+1

たぶん 'エンコーディングは= 'UTF-8'' – jezrael

+0

そうですね必要があると

ID = tempx.groupby('ID')['days'].mean() ID.to_csv("file1.csv", sep=',',encoding='utf-8',index = True) 

またはGROUPBY感謝( - : – piRSquared

関連する問題