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

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

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

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

Q&A

解決済

1回答

839閲覧

線形補間をして差を求めたい

Sugawara-Miti

総合スコア2

Python

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

0グッド

0クリップ

投稿2021/01/30 10:44

以下の二つのデータがあります.

python

1data1 data2 2depth value depth value 3-0.5 12 -0.21 14 4-1 9 -0.6 10 5-2 7 -1.3 6 6-3 6 -2.5 6 7... ... ... ... 8-15 2 -15.2 2 9-16 Nan -16.4 1

data1のdepth は-1以降整数で1ごとに下がっています.
data2のdepthをdata1のdepthに合うに線形補間をして差を求めたいです.

最終的にはこのような感じになっているといいです.

python

1data1-data2 2depth value 3-1 ?? 4-2 ?? 5-3 ?? 6...   ... 7-15 ??

線形補間を使って-1から-15までの差を求めることができますでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんな感じでしょうか。

python

1import numpy as np 2import pandas as pd 3from scipy import interpolate 4 5data1 = pd.DataFrame({"depth":[-0.5, -1, -2, -3, -15, -16], 6 "value":[12, 9, 7, 6, 2, np.nan]}) 7data2 = pd.DataFrame({"depth":[-0.21, -0.6, -1.3, -2.5, -15.2, -16.4], 8 "value":[14, 10, 6, 6, 2, 1]}) 9 10 11# data2の線形補間関数を求める 12f = interpolate.interp1d(data2["depth"], data2["value"]) 13 14# data1のdepthにおけるdata2の値を補完で求める 15data2_interp = f(data1["depth"]) 16 17# 計算してデータフレームに入れる 18data1_minus_data2 = pd.DataFrame({"depth":data1["depth"], 19 "value":data1["value"] - data2_interp}) 20print(data1_minus_data2) 21 22""" => 23 depth value 240 -0.5 0.974359 251 -1.0 1.285714 262 -2.0 1.000000 273 -3.0 0.157480 284 -15.0 -0.062992 295 -16.0 NaN 30"""

scipy.interpolate.interp1d — SciPy v1.6.0 Reference Guide

投稿2021/01/30 12:02

hayataka2049

総合スコア30935

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問