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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

解決済

Pandasでデータ抽出挿入がうまくできない

morimori_4
morimori_4

総合スコア22

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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

1回答

0評価

0クリップ

183閲覧

投稿2022/02/23 02:04

Pandasでデータ抽出挿入がうまくできないので教えていただけないでしょうか。

実現したいこと

下の表でCondがTrueの場合にOffset値だけシフトしてPrice値を入れた列を追加したい。

例えば、行2(Cond=True)の場合、Price 300 を 2つOffsetした行0に300を挿入
行3(Cond=True)の場合、Price 400 を 1つOffsetした行2に400を挿入

Python

import pandas as pd df = pd.DataFrame({'Price': [150, 250, 300, 400, 500,550], 'Cond': [False, False, True, True, None, True], 'Offset': [None, None, 2, 1, None, 1]}) ---------- Price Cond Offset 0 150 False NaN 1 250 False NaN 2 300 True 2.0 3 400 True 1.0 4 500 None NaN 5 550 True 1.0

望む結果は次の通りです。

Python

Price Cond Offset NEW 0 150 False NaN   300 1 250 False NaN    2 300 True 2.0   400 3 400 True 1.0 4 500 None NaN   550 5 550 True 1.0

試したこと

以下のように5段階で処理しようと思いましたが最後のeの処理がわかりません。
a = df[(df['Cond']==True)].index #条件にあてはまるindex抽出
b = df.loc[(df['Cond']==True),'Offset'].astype("int64") #条件にあてはまるOffset抽出
c = a-b #新たなindex
d = df.loc[(df['Cond']==True),'Price'] #新たなPrice
e = d.reindex(c.index) #cとdの結果から新たなindex/Priceにしたい

どうかよろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

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