簡體   English   中英

根據值是否為 null 創建 pandas dataframe 列

[英]Create a pandas dataframe column depending if a value is null or not

我有一個關於學生在 2016 年參加的課程的數據科學相關項目。我有一個專欄,顯示學生升級課程的日期。 如果課程尚未升級,則值為 Null。 我想要的是創建一個新的數據框,該數據框僅包含這個由“是”或“否”組成的升級列。 我嘗試了以下代碼並且它有效,除了我收到以下警告:“SettingWithCopyWarning:試圖在 DataFrame 的切片副本上設置值。” 我正在放置一個示例數據集、代碼和我得到的 output。 如果有人可以通過解釋告訴我更有效的方法,那就太好了。

import pandas as pd

registration = pd.DataFrame({'upgraded':['2016-08-12 19:42:07+00:00', '2016-08-14 11:51:21+00:00',
    '2016-07-22 17:24:59+00:00', None, None, '2016-07-12 10:33:02+00:00']})

upgraded_1 = registration[['upgraded']]
for i in range(len(upgraded_1['upgraded'])):
    if pd.isnull(upgraded_1['upgraded'][i]):
        upgraded_1['upgraded'][i] = "No"
    else:
        upgraded_1['upgraded'][i] = "Yes"

Output:

 upgraded_1
    0   Yes
    1   Yes
    2   Yes
    3   No
    4   No
    5   Yes

您可以使用isna方法和numpy.where來實現這一點(將其視為numpy.if_then_else )。

>>> pd.DataFrame(np.where(registration.isna(), 'No', 'Yes'))
     0
0  Yes
1  Yes
2  Yes
3   No
4   No
5  Yes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM