プロが教える店舗&オフィスのセキュリティ対策術

以下のようなdatafarmeをgroupbyでグルーピングしたgpの各要素をfor文で参照する方法を教えてください。(グルーピングしている意図としては、”group”が同じものの中で、初めて”stock”が1以上となっている行の”color”を見つけたいためです。groupをキーとして1行づつみていって、キーが変わったら、とかでもできそうですが、やり方がわからないのでgroupby使ってグルーピングして、それをfor文で取り出すと、1度にgroupのかたまりが得られそうだからです。)

for index, aaa in gp:
-----------------------------------------------
if aaa(["stock"])>=1:
work = "aaa(["color"])"
↑aaa に格納される行の指定の仕方が不明です
-----------------------------------------------



df = pd.DataFrame({
'group': ['a', 'b', 'a', 'c', 'c', 'a'],
'color': ['red', 'black', 'yelow', 'blue', 'white, 'green'],
'stock': [0, 0, 8, 0, 15, 30]
})

gp = df.groupby('group',as_index=False)

0 a red 5
1 a yellow 8
2 a green 30
3 b black 7
4 c blue 10
5 c white 15

A 回答 (1件)

何だろ。


良くやりたい事が分からんのだけど、こういう事がしたいのかしらん。

>>> [i[0] for i in zip(gp.get_group('a')['color'], gp.get_group('a')['stock']) if i[1] > 0][0]
'yellow'
>>>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!