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

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

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

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

pandas

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

Q&A

解決済

1回答

289閲覧

python csv Index取得参照

scirocco

総合スコア7

CSV

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

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python

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

pandas

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

0グッド

0クリップ

投稿2020/01/15 04:05

編集2020/01/15 05:14

前提・実現したいこと

CSVの実験データからエクセルおよび近似関数を作成するnumpyを用いたプログラムの前処理として

CSVで出てくるx,y(2列)に対して、
(input関数で与える)xにおけるy値を0とし、
修正yを作成したいと考えております。

input関数で判定できるところまで作成できましたが、
if文を用いたindex取得、そのindexを用いたfloat型データの取得{(例)x=100におけるyの値の参照}および、
修正後のyの格納方法わからず、
ご教示いただけますと幸いでございます。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

import locale import pandas as pd import numpy as np from openpyxl import Workbook from openpyxl.chart import BarChart, Reference import time wb = Workbook() ws0 = wb.active ws0.title = 'csv' ws1 = wb.create_sheet('calc') encoding = locale.getpreferredencoding() temp = pd.read_csv('input.csv', encoding='utf-8', header=None,nrows=3) header = temp.ix[1] + "[" + temp.ix[2] + "]" print(header) print(type(header)) df = pd.read_csv('input.csv', encoding='SHIFT-JIS', header=None,skiprows=3) df.columns = header print(df) print(type(df)) print("\n"'基準Tempを入力↓'"\n") base_temp = input() base_temp = float(base_x) print("\n"'基準Tempは', base_temp, '°C'"\n") print(type(base_temp)) print("\n 判定結果") print(df['Temp[°C]'] == base_temp) print("\n") ```45と入力した場合、以下出力抜粋 判定結果 0 False 1 True 2 False 3 False 4 False Name: Temp[°C], dtype: bool ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) input.csv data name Time Temp unit s °C 0.1 44.5 0.2 45 0.3 46.4 0.4 50 0.5 51 20200115 13:58 追記 ご連絡いただきありがとうございます。 説明不足で申し訳ございません。 ↓Inputcsv ![イメージ説明](7caa363f09472c7a4a86b1e872414911.jpeg) 実験生データのBC列に対して、B列を修正した値をD列に追加したいと考えております。 1. 基準TempをInput入力(例:45) 2. C列にてInput値を検索 3. 合致するC列のセル(例:C5)のindexを取得 4. 3をもとに、B列(例:B5)のセル値を取得 5. B列各値-基準time(B5)をD列に追加 (D4=B4-$B$5, D5=B5-$B$5, D6=B6-$B$5, ・・・) 6. グラフ描写、回帰分析(X軸-B列,Y軸-C列) 2までエラーなく進みましたが、Index関数の使い方含めて3,4,5の手法がわからず ご教示いただけますと幸いでございます。 ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

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

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

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

magichan

2020/01/15 04:30

> if文を用いたindex取得、そのindexを用いたfloat型データの取得{(例)x=100におけるyの値の参照}および、修正後のyの格納方法 の部分の意味がサッパリわかりません できましたら、質問のデータ(input.csv)に対して 45を入力した場合に、どの様な出力を得たいのかを具体的にお書き下さい
scirocco

2020/01/15 05:16

ご指摘ありがとうございます。 追記修正しましたので、ご確認いただけますと幸いです。
guest

回答1

0

ベストアンサー

多分やりたいことはこんな感じかと思いますが、どうでしょうか?

Python

1print("\n"'基準Tempを入力↓'"\n") 2base_temp = input() 3base_temp = float(base_temp) 4print("\n"'基準Tempは', base_temp, '°C'"\n") 5print(type(base_temp)) 6 7print("\n 判定結果") 8print(df['Temp[°C]'] == base_temp) 9print("\n") 10 11# 基準Tempとなる行のIndex値を求める 12target_index = df[df['Temp[°C]'] == base_temp].index 13if target_index.empty: 14 print('対象がありません') 15 sys.exit() 16print(target_index) 17 18# 基準となる時間を取得 19#(target_indexは複数の値を持つ可能性があるので先頭 target_index[0]を使う) 20reference_time = df.loc[target_index[0], 'Time[s]'] 21print(reference_time) 22 23# Time[s]列の値より基準時間を引き修正Time[s]列に入れる 24df['修正Time[s]'] = df['Time[s]'].sub(reference_time) 25print(df)

投稿2020/01/15 05:38

magichan

総合スコア15898

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

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

scirocco

2020/01/15 05:57

Indexの取得方法がわからず、困っておりましたが、 思い通り、D列に結果追記ができました。 ご教示いただき、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問