2
私はそのようなデータを持っています。パンダ:最大値と最小値を取得して各行に書き込む方法は?
IカラムA(列Aの各々同じ値の場合、Iが列Bに最小値と最大値を検索する)に応じてmaxとB列の極小値を取り、書きたいする>> df
A B C
0 1 5 1
1 1 7 1
2 1 6 1
3 1 7 1
4 2 5 1
5 2 8 1
6 2 6 1
7 3 7 1
8 3 9 1
9 4 6 1
10 4 7 1
11 4 1 1
元のテーブルの結果。私のコードは:
df1 = df.groupby(['A']).B.transform(max)
df1 = df1.rename(columns={'B':'B_max'})
df2 = df.groupby.(['A']).B.transform(min)
df1 = df1.rename(columns={'B':'B_min'})
df3 = df.join(df1['B_max']).join(df2['B_min'])
これが結果です。
A B C B_max B_min
0 1 5 1
1 1 7 1 7
2 1 6 1
3 1 4 1 4
4 2 5 1
5 2 8 1 8
6 2 6 1 6
7 3 7 1 7
8 3 9 1 9
9 4 6 1
10 4 7 1 7
11 4 1 1 1
しかし、私はこのような表を見たいです。
A B C B_max B_min
0 1 5 1 7 4
1 1 7 1 7 4
2 1 6 1 7 4
3 1 4 1 7 4
4 2 5 1 8 6
5 2 8 1 8 6
6 2 6 1 8 6
7 3 7 1 9 7
8 3 9 1 9 7
9 4 6 1 7 1
10 4 7 1 7 1
11 4 1 1 7 1
df
と同じ長さのtransform
リターンSeries
ので、私はあなただけの新しい列に値を割り当てる必要があると思う。このよう
それは変だ、私はそのようなエラーを与えた。 TypeError: 'SeriesGroupBy'オブジェクトはアイテム割り当てをサポートしていません – anniejcannon
はい、確信しています。 – anniejcannon
申し訳ありませんが、タイプミスがありました。今、私はそのような警告を受けています。 EXTras9.py:93:SettingWithCopyWarning: 値は、DataFrameからスライスのコピーに設定しようとしています。 .locを使用してみてください[row_indexer、col_indexer] = valueの代わりに – anniejcannon