0
私はrow
とcolumn
という番号を取得しようとしていますが、これはPandas DataFrameの3つの条件を満たしています。Pandasの複数の条件を満たす行番号と列番号を取得
私は0
のDATAFRAME、1
、-1
(1850
よりも大きい)を持っています。私がrow
とcolumn
を取得しようとすると、出力を得るのにずっと時間がかかります。
次は私が使用しようとしている例です。
import pandas as pd
import numpy as np
a = pd.DataFrame(np.random.randint(2, size=(1845,1850)))
b = pd.DataFrame(np.random.randint(2, size=(5,1850)))
b[b == 1] = -1
c = pd.concat([a,b], ignore_index=True)
column_positive = []
row_positive = []
column_negative = []
row_negative = []
column_zero = []
row_zero = []
for column in range(0, c.shape[0]):
for row in range(0, c.shape[1]):
if c.iloc[column, row] == 1:
column_positive.append(column)
row_positive.append(row)
elif c.iloc[column, row] == -1:
column_negative.append(column)
row_negative.append(row)
else:
column_zero.append(column)
row_zero.append(row)
私はいくつかのウェブ検索を行なったし、np.where()
はこのような何かを行うことがわかったが、私はそれを行うにはどのようには考えています。
もっと良い選択肢はありますか?
感謝@Divakar。また、あなたは 'np.column_stack(np.where(c.values == 1))'で答えを編集できると思います。 – Akshay
@akshayまたは単に 'np.argwhere(c_arr == 1)'などです。これは 'np.argwhere'を使った2番目のアプローチが達成しようとしているものです。 – Divakar
本当に、私の悪い。とにかくありがとう。 – Akshay