看板 Python 關於我們 聯絡資訊
如題 這是我的data frame http://i.imgur.com/USqiil5.jpg
我想要把Death year欄位資料為nan的變成0其他都變成1 import pandas as pd mydata_csv = pd.read_csv('D:\Python\character-deaths.csv',sep = ',',encoding = 'utf-8') mydata_csv del mydata_csv['Book of Death'] del mydata_csv['Death Chapter'] if mydata_csv['Death Year'] == None: mydata_csv['Death Year'] = 0 else: mydata_csv['Death Year'] = 1 這個是我的程式碼 到if那裡就錯誤了QQ ----- Sent from JPTT on my Asus ASUS_Z00AD. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.234.184 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1506768286.A.DA3.html
djshen: 也不說有什麼錯誤訊息 09/30 19:07
johnny78615: import numpy as np 09/30 19:26
johnny78615: if mydata_csv['Death Year'] == np.nan 09/30 19:26
johnny78615: 這樣試試 09/30 19:26
不行耶 他會出現跟我下面一樣的錯誤訊息
PTTOuO: ValueError: The truth value of a Series is ambiguous. 09/30 19:27
PTTOuO: Use a.empty, a.bool(), a.item(), a.any() or a.all(). 09/30 19:27
※ 編輯: PTTOuO (106.1.234.184), 09/30/2017 19:39:10
PTTOuO: 我改用 mydata_csv['Death Year'] = np.where(mydata_csv[ 09/30 19:40
PTTOuO: 'Death Year']==None, 1, 0) 可以修改裡面的資料了..但是 09/30 19:40
PTTOuO: 通通變成0了QQ 09/30 19:40
是因為nan不是None嗎..? ※ 編輯: PTTOuO (106.1.234.184), 09/30/2017 19:40:49
Sunal: np.where(pd.isnull(df['Death Year']), 0, 1) 09/30 22:14
fischcheng: goo.gl/xtV2SS 10/01 08:20
fischcheng: python裡面np.nan跟np.nan不相等。本來dataframe裡的 10/01 08:21
fischcheng: 也不是真的np.nan。 10/01 08:21
fischcheng: 不然直接用fillna試試 10/01 08:23
fischcheng: 其他用where不等於1取代。 10/01 08:24
fischcheng: 打錯,適用fillna填上0,然後其他用不等於0 填上1 10/01 08:24
jiyu520: 先確定pd裡面的資料格式 10/01 16:08
jiyu520: 然後用最小單元(一格)先取代看看是否成功 10/01 16:09