以下のようなCSVデータがあり、B列において1の値の次に0がでる場合を、抽出したりcount+1など数を数えたいです。
なにかいい方法があればご教授お願いします。
A B
a 1
b 1
c 1
d 0
e 1
f 1
g 0
h 1
i 0
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
普通の回答は他の方のを参考にしてもらうとして
まず、こうなってるのから
python
1list1 = [ 2 ['a',1], 3 ['b',1], 4 ['c',1], 5 ['d',0], 6 ['e',1], 7 ['f',1], 8 ['g',0], 9 ['h',1], 10 ['i',0]]
こんなの(↓)をつくります。
python
1list2 = [ 2 ['a','b',1,1], 3 ['b','c',1,1], 4 ['c','d',1,0], 5 ['d','e',0,1], 6 ['e','f',1,1], 7 ['f','g',1,0], 8 ['g','h',0,1], 9 ['h','i',1,0]]
隣り合う二行分づつをまとめたものです。
あとは、分かりますよね?
投稿2021/07/20 11:27
総合スコア7466
0
ベストアンサー
目の前にトランプのようなカードが9枚積んであります。
一枚目をめくると"a 1"と書いてあります。
B列において1の値の次に0がでる場合、といっても前がないので何もできません。
手元にある黒板に最後に出た数字である1を書いて、カードを捨てましょう。
もう一枚めくると、"b 1"と書いてあります。
B列において1の値の次に0がでる場合、ではありません。
手元にある黒板に最後に出た数字である1を書いて、カードを捨てましょう。
もう一枚めくると、"c 1"と書いてあります。
B列において1の値の次に0がでる場合、ではありません。
手元にある黒板に最後に出た数字である1を書いて、カードを捨てましょう。
もう一枚めくると、"d 0"と書いてあります。
B列において1の値の次に0がでる場合、ですね。
ノートに4枚目は1の値の次に0が出たと書いておきましょう。
手元にある黒板に最後に出た数字である0を書いて、カードを捨てましょう。
もう一枚めくると、"e 1"と書いてあります。
B列において1の値の次に0がでる場合、ではありませんね。
手元にある黒板に最後に出た数字である1を書いて、カードを捨てましょう。
カードがなくなるまでやったら、ノートを見直して、何回出たかを数えましょう。
これができるようになったら、やっていたことをPythonでどう書けばよいかを考えましょう。
投稿2021/07/20 03:13
編集2021/07/20 03:37総合スコア24670
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
CSV読み込みは1例ですが、
count の部分はこんなかんじでいかがでしょうか?
import csv from functools import reduce csv_str = ''' A B a 1 b 1 c 1 d 0 e 1 f 1 g 0 h 1 i 0 ''' data = list(csv.reader(csv_str.strip().splitlines(), delimiter=' ')) print(data) data.pop(0) # ヘッダー def func(a, b): if a[1] == '1' and b[1] == '0': print(a, b) # ここで処理する return b reduce(func, data)
投稿2021/07/20 03:05
総合スコア662
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。