我希望根據包含簡單字串-字串對字典的給定行的“DICTIONARY”列中是否存在預定義值,將布爾/二進制“CONDITION”列添加到我現有的資料框中,并且我們正在查看其鍵. 我試圖避免撰寫自己的回圈:
df.loc['KEYWORD' in df['DICTIONARY'], 'CONDITION'] = 1
df.loc['KEYWORD' not in df['DICTIONARY'], 'CONDITION'] = 0
但它給出了錯誤:
KeyError: 'cannot use a single bool to index into setitem'
當我嘗試時,出現了同樣的錯誤:
condition = ('KEYWORD' in (i for i in df['DICTIONARY']))
df.loc[condition, 'CONDITION'] = 1
我也嘗試過這個,但是它導致了一個我無法使用的生成器:
condition = ('KEYWORD' in i for i in df['DICTIONARY'].tolist())
uj5u.com熱心網友回復:
如果可能,將 valuest 轉換為字串,然后測驗子字串使用:
df['CONDITION'] = df['DICTIONARY'].astype(str).str.contains('KEYWORD').astype(int)
df['CONDITION'] = np.where(df['DICTIONARY'].astype(str).str.contains('KEYWORD'), 1, 0)
或者也許(取決于資料):
df['CONDITION'] = df['DICTIONARY'].map(lambda x: 'KEYWORD' in x).astype(int)
df['CONDITION'] = np.where(df['DICTIONARY'].map(lambda x: 'KEYWORD' in x), 1, 0)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/311129.html
上一篇:合并嵌套級別的JSON
下一篇:如何顯示列舉中是否有重復項
