df
以下に示すように、パンダのデータフレームがあるとします-
a b
0 1 23
1 2 67
2 1 98
3 1 45
4 2 64
5 3 76
groupby
結果のデータフレームが次のようになるように使用したい-
a b
0 1 23
1 1 98
2 1 45
3 2 67
4 2 64
5 3 76
試しdf.groupby(['a', 'b']).count().reset_index()
ましたが、次の行の順序が変わり'b'
ます。グループ内でシフトするにはどうすればよいですか?たとえば、「a」をグループ化し、「b」を1桁シフトしたいとします。したがって、グループ化およびシフトされたデータフレームは次のようになります-
a b
0 1 NA
1 1 23
2 1 98
3 2 NA
4 2 67
5 3 NA
まず、dfを次のように並べ替えますa
。
In [4501]: df = df.sort_values('a')
In [4502]: df
Out[4502]:
a b
0 1 23
2 1 98
3 1 45
1 2 67
4 2 64
5 3 76
ここで、グループごとに1ずつシフトします。
In [4504]: df['b'] = df.groupby('a')['b'].shift()
In [4505]: df
Out[4505]:
a b
0 1 NaN
2 1 23.0
3 1 98.0
1 2 NaN
4 2 67.0
5 3 NaN
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加