python
1# df 2 0 1 ... 33 3# 0 10.11 10.00 ... 0 4# 1 15.57 11.25 ... 1 5# 2 16.34 20.98 ... 2 6# 3 18.60 10.55 ... 3 7# 4 19.1 2.3 ... 4 8# 5 19.1 300.3 ... 5 9・ . . . 10・ . . . 11・ . . . 12# 600 20.5 20.3 600
次のようなデータフレームがあったとします
33列目だけはindexと同じ値が入ってます.
やりたいこと
①33列目の0~255の値に15.6を乗算し,256~300の値には15.9,301~600には19.0を乗算したいと考えています.
指定の行の範囲のみに特定の値を乗算することはpandasで可能なのでしょうか?
②また,33列目に乗算した後,360を超えるものについては360以下になるように引き算もしたいと考えております
たとえば①の処理が出来た場合
python
1# df 2 0 1 ... 33 3# 0 10.11 10.00 ... 0 4# 1 15.57 11.25 ... 15.6 5# 2 16.34 20.98 ... 31.2 6# 3 18.60 10.55 ... 46.8 7# 4 19.1 2.3 ... 62.4 8# 5 19.1 300.3 ... 78 9・ . . . 10・ . . . 11・ . . . 12# 599 22.0 21.0 11381 13# 600 20.5 20.3 11400
のようになり
python
1# df 2 0 1 ... 33 3# 0 10.11 10.00 ... 0 4# 1 15.57 11.25 ... 15.6 5# 2 16.34 20.98 ... 31.2 6# 3 18.60 10.55 ... 46.8 7# 4 19.1 2.3 ... 62.4 8# 5 19.1 300.3 ... 78 9・ . . ... . 10・ . . ... . 11・ . . ... . 12# 599 22.0 21.0 ... 11381-(360*30) 13# 600 20.5 20.3 ... 11400-(360*31)
つぎのように
360を超える値については360以下になるまで360を引き続け,値を出す.
というプログラムを組みたいのですが難しく,調べても目的の処理を行えるプログラムが見つかりません
今現在できているのがデータフレームを表示させるまでです.
python
1import pandas as pd 2 3#エクセル→pandas 4df=pd.read_excel('test0.xlsx') 5 6#転値 7dft=df.T 8#indexをlist化 9l_index=list(dft.index) 10#list→Series化 11l_series=pd.Series(l_index) 12#Seriesをデータフレームに追加 13dft['33']=l_series 14print(dft)
分かりにくいかと思いますが、ご教授お願い致します.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/20 06:57