私はpython 3.5を使用しており、numpyとpandasのライブラリをインポートしています。私はdfという名前のDataFrameを作成しました。インデックスはゼロから始まり、2つの列から始まります。変更の割合(PofChg)、Up、Down、またはFlat(U_D_F)。どのようにnp.whereにより多くの引数を受け入れるようにすると、>、<、および=をフィルタリングします。 >と<?
U_D_F列については、PofChg列に基づいて 'Up'、 'Down'、 'Flat'という単語を入力したいと考えています。 Upはゼロより大きく、Downはゼロより小さく、Flatはゼロに等しいことを意味します。
np.where関数は、2つの事柄を除いてうまく働くようで、PofChg欄の数が「ゼロ」であるとき (1)なぜそれがU_D_F列に「ダウン」を表示さ (2)どのようにします私はnp.where関数をより多くの引数を受け入れるようにします。つまり、df.PofChgが0より大きい場合は真、 "↑"ならfalseを表示します。 > 0、真ディスプレイ「アップ」の場合はfalseディスプレイ「ダウン」であれば、それはゼロに等しいならば、「フラット」表示
私は
PofChg U_D_F
0 -1 Down
1 0 Down
2 1 Up
3 -2 Down
4 0 Down
5 5 Up
6 3 Up
7 -6 Down
Press any key to continue . . .
dfを印刷するとき、これは、現在の出力であります
これは私がこのケースでnp.sign()
と一緒にmap()を使用することになり、私のコード
import pandas as pd
import numpy as np
df = pd.DataFrame({'PofChg':[-1,0,1,-2,0,5,3,-6]})
df['U_D_F'] = np.where(df.PofChg > 0 , 'Up','Down');df
print(df)
私はそれがゼロであるときに表示されている理由をキャッチしなかったと信じていない、あなたの答えは非常にうまく動作します、 – ZacAttack