質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

4回答

632閲覧

python 配列 1の次に0があれば・・

wwwoo

総合スコア2

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/07/20 02:41

以下のような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ページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

takasima20

総合スコア7460

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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
ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

anozon

総合スコア662

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こういう場合は規則性を見付けるといいですよ。

たとえば、Bの部分を数列と見立てて、

B = { 1, 1, 1, 0, 1, ... }

そうすると、初項で仮に0 だとしても、初項より前には項がないので、除外します。

そうすると第二項から考えることになります。

で、『1の値の次に0がでる場合』っていうのは数列風に言えば、

前項が1で、この項が0である場合』ですね。

これを数Aの『集合と論理』での『かつ』『または』のやつで当てはめて考えてみましょう。

投稿2021/07/20 02:52

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問