1
Np.whereは私に多くのエラーを与えているので、代わりにdf.locで解決策を探しています。python:複数の条件を持つpandas np.whereとdf.loc
これは私が取得されていますnp.whereエラーです:
C:\Users\xxx\AppData\Local\Continuum\Anaconda2\lib\site-packages\ipykernel\__main__.py:1: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
if __name__ == '__main__':
私は、次のデータフレームDFで働いています:
df = pd.DataFrame({'Column_A': ['AAA','AAA','ABC','CDE'],'checked': ['0','0','1','0'],'duplicate': ['True','True','False','False']})
Column_A checked duplicate
0 AAA 0 True
1 AAA 0 True
2 ABC 1 False
3 CDE 0 False
チェックすると、私は、追加のフラグを作成したいれます0と重複は真です。
私はこれを試してみましたが、それはうまくいきませんでした:
df['flag'] = (np.where((df['checked'] == 'Y') &(df['duplicate'] == 'True'), 'Y', '0'))
TypeError: invalid type comparison
私はdf.locでそれを試してみました:
df['flag'] = (df.loc[df['checked'] == 'Y']& df.loc[df['duplicate'] == 'True'], 'Y','0')
TypeError: invalid type comparison
と私は同じエラーを取得します!
私はあなたのboolean
が
string
のではありませんので、
'
を取り外す必要があると思う
ああ - 私は参照してください! &wの代わりにOR文を使う方法 – jeangelj
ありがとうございます - df.locでそれを行う方法はありますか? – jeangelj
私はそう思います、それはあなたが必要とするものによって異なります。 '&'はビット単位で 'and'で、' | 'はビット単位で' or'です。 – jezrael