###前提・実現したいこと
お世話になります。
データフレームの操作方法について皆様のお知恵を拝借いただけないでしょうか。
目標としては、データフレーム内対象の列においてn行目からn−1行目を引いた数値をdeff列として元のデータフレームに追加したいです。(一行目の算出は0としたいです)
下のようなデータフレームがあるとします。
x -3954305.448 -3954305.448 -3954305.443 -3954305.444 -3954305.446 -3954305.445 -3954305.444
データ加工例。
x deff -3954305.448 0 -3954305.448 0 -3954305.443 0.004999999888 -3954305.444 -0.001000000164 -3954305.446 -0.001999999862 -3954305.445 0.001000000164 -3954305.444 0.0009999996983
###発生している問題・エラーメッセージ
下記エラーが表示されます。
エラーメッセージ a[i]において下記エラーメッセージが発生します a value is trying to be set on a copy of a slice from a dataframe
###該当のソースコード
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np import datetime data = pd.read_table('filedata',names=['id','x'],header=0,dtype = 'object') var_id = ['id'] var_val = ['x'] data[var_id] = data[var_id].astype(object) data[var_val] = data[var_val].astype(float) def get_data(a): b = [x for x in a] for i, x in enumerate(a): if i == 0: a[i] = i elif i != 0: a[i] = round((a[i] - b[i-1])*10**9, 2) return a data['deff'] = get_data(data['x']) ```使用言語python3.5(anaconda) ###実施した内容 get_dataの変数aについて.locを指定したのですが、同じエラーが帰ってきてしまいました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/18 06:54
2017/12/18 06:59
2017/12/18 07:13