回答編集履歴
3
test
CHANGED
@@ -1,38 +1,2 @@
|
|
1
|
-
|
1
|
+
※ 削除
|
2
2
|
|
3
|
-
「操作順に」とありますが、質問にあるコードでは操作順にソートする処理がありません。レコードが操作順にデータフレームに格納されているのかもしれませんが、念の為にソートしています。(`sort_values(['user_id', '操作順'])`)
|
4
|
-
|
5
|
-
```python
|
6
|
-
import pandas as pd
|
7
|
-
import io
|
8
|
-
|
9
|
-
def point_mean(gamedf):
|
10
|
-
gamedf['order'] = gamedf.sort_values(['user_id', '操作順']).groupby('user_id')['操作順'].cumcount()
|
11
|
-
return gamedf.pivot(index='order', columns='user_id', values='point')
|
12
|
-
|
13
|
-
# 「操作順」データが連続する値(例えば [0, 1, 2, 3, ..., 12, 13])の場合は pivot() だけでもよいはず
|
14
|
-
# def point_mean(gamedf):
|
15
|
-
# return gamedf.pivot(index='操作順', columns='user_id', values='point')
|
16
|
-
|
17
|
-
if __name__ == '__main__':
|
18
|
-
csv_data = '''
|
19
|
-
user_id,操作順,point
|
20
|
-
aaaa,0,10
|
21
|
-
aaaa,1,2
|
22
|
-
aaaa,2,100
|
23
|
-
aaaa,13,20
|
24
|
-
bbbb,0,5
|
25
|
-
zzzz,13,40
|
26
|
-
'''
|
27
|
-
df = pd.read_csv(io.StringIO(csv_data))
|
28
|
-
|
29
|
-
resultdf = point_mean(df)
|
30
|
-
print(resultdf)
|
31
|
-
|
32
|
-
# user_id aaaa bbbb zzzz
|
33
|
-
# order
|
34
|
-
# 0 10.0 5.0 40.0
|
35
|
-
# 1 2.0 NaN NaN
|
36
|
-
# 2 100.0 NaN NaN
|
37
|
-
# 3 20.0 NaN NaN
|
38
|
-
```
|
2
test
CHANGED
@@ -9,6 +9,10 @@
|
|
9
9
|
def point_mean(gamedf):
|
10
10
|
gamedf['order'] = gamedf.sort_values(['user_id', '操作順']).groupby('user_id')['操作順'].cumcount()
|
11
11
|
return gamedf.pivot(index='order', columns='user_id', values='point')
|
12
|
+
|
13
|
+
# 「操作順」データが連続する値(例えば [0, 1, 2, 3, ..., 12, 13])の場合は pivot() だけでもよいはず
|
14
|
+
# def point_mean(gamedf):
|
15
|
+
# return gamedf.pivot(index='操作順', columns='user_id', values='point')
|
12
16
|
|
13
17
|
if __name__ == '__main__':
|
14
18
|
csv_data = '''
|
1
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
def point_mean(gamedf):
|
10
10
|
gamedf['order'] = gamedf.sort_values(['user_id', '操作順']).groupby('user_id')['操作順'].cumcount()
|
11
|
-
return gamedf.pivot(index='
|
11
|
+
return gamedf.pivot(index='order', columns='user_id', values='point')
|
12
12
|
|
13
13
|
if __name__ == '__main__':
|
14
14
|
csv_data = '''
|