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

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

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

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

pandas

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

Q&A

解決済

1回答

1068閲覧

python pandas data 座標 距離

Itasca

総合スコア12

Python

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

pandas

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

0グッド

0クリップ

投稿2021/10/19 10:36

編集2021/10/19 10:49

実現したいこと

データはセルの中心座標を表しており、以下のような計算をしたいです。
実際のデータは以下のように規則正しくないです。

元データ
df = pd.DataFrame

||x|y|z|
|:--|:--:|--:|
|0|1|1|1|
|1|3|3|3|
|2|5|5|5|
|3|7|7|7|
|4|9|9|9|
|||||
|n|x|y|z|


|x0| = 2x0
|x1| = 2
(x1-|x0|) = 2*(x1-sum(|x0|:|x0|))
|x2| = 2*(x2-(|x0|+|x1|)) = 2*(x2-sum(|x0|:|x1|))
|x3| = 2*(x3-(|x0|+|x1|+|x2|)) = 2*(x3-sum(|x0|:|x2|))
|x4| = 2*(x4-(|x0|+|x1|+|x2|+|x3|)) = 2*(x4-sum(|x0|:|x3|))

|n| = 上記のような計算をx,y,zそれぞれ行いたいです。 求めたいデータ ↓ ||x|y|z| |:--|:--:|--:| |0|2|2|2| |1|2|2|2| |2|2|2|2| |3|2|2|2| |4|2|2|2| |~|~|~|~| |n|x|y|z|

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

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

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

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

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

guest

回答1

0

ベストアンサー

applyを使って素直に実装すると以下のような感じでできます。

Python

1import pandas as pd 2 3df = pd.DataFrame({'X':list(range(1,10,2))}) 4 5v_sum = 0 6def f(v): 7 global v_sum 8 vn = 2*(v-v_sum) 9 v_sum += vn 10 return vn 11 12df['X2'] = df['X'].apply(f) 13print(df) 14""" 15 X X2 160 1 2 171 3 2 182 5 2 193 7 2 204 9 2 21"""

投稿2021/10/19 11:27

can110

総合スコア38286

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

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

Itasca

2021/10/19 12:48

すごい。。。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.45%

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

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

質問する

関連した質問