私が持っているもの:
series = ['foo', 'bar', 'baz', 'foo', 'baz', 'foo' ]
column = [1, 2, -3, -4, 5, -6]
list = [column[function(x)].count() for x in series]
list:
foo = 3
bar = 1
baz = 2
正常に動作し、一連の各インスタンスがカウントされます。
正の数のインスタンスのみもカウントしたいので、次のようにします。
list = [column[function(x)].count() for x in series if (x := function(x)) >= 0]
list:
foo = 1
bar = 1
baz = 1
Walrus Operator を発見しましたが、私の場合、x は文字列です。おそらく核心的な問題でしょうか?
コードの Walrus 部分で構文エラーが発生します。
関数で「合計」と「正の合計」列を作成すると、合計と正の数の両方が必要です。リスト内包表記でこれを行う方法はありますか。
よろしくお願いいたします。