2017-08-08 91 views
2

我有一個數據框與不少網址。但是,有些人失蹤了。它基本如下所示:在熊貓中填寫缺失值錯誤?

import pandas as pd 
import numpy as np 
csv = [{"url_1" : np.NaN, "url_2" : "https://www.mercedes-benz.de/content/germany/mpc/mpc_germany_website/de/home_mpc/passengercars/home/new_cars/models/mercedes_amg_gt/r190.html"}] 

df = pd.DataFrame(csv) 

在這種情況下,缺少url_1。我試圖用列url_2中的條目替換它。這是我做的:

df.url_1 = df.url_1.fillna(df.url_2, inplace=True) 

這是結果:

url_1 url_2 
0 None https://www.mercedes-benz.de/content/germany/m... 

我有兩個問題:

(1)爲什麼不缺少的值代替? (2)在原始數據集中,我拋出了一個錯誤:invalid fill value with a <class 'pandas.core.frame.DataFrame'>數據框看起來完全一樣 - 而且我至少在上面提到的小測試中沒有出現錯誤。錯誤告訴我什麼,我該如何擺脫它?

任何幫助很高興讚賞!謝謝你,/ R

回答

2

您需要刪除inplace如果要指定輸出,因爲如果inplace參數函數返回None

df.url_1 = df.url_1.fillna(df.url_2) 
print (df) 
               url_1 \ 
0 https://www.mercedes-benz.de/content/germany/m... 

               url_2 
0 https://www.mercedes-benz.de/content/germany/m... 

print (df.url_1.fillna(df.url_2, inplace=True)) 
None 

或者不分配和使用inplace

df.url_1.fillna(df.url_2, inplace=True) 
print (df) 
               url_1 \ 
0 https://www.mercedes-benz.de/content/germany/m... 

               url_2 
0 https://www.mercedes-benz.de/content/germany/m... 
+0

謝謝!發揮魅力! – Rachel

+0

很高興能幫到你,美好的一天! – jezrael

1

(1) &(2)

您不能使用分配和關鍵字inplace

df['url_1'] = df['url_1'].fillna(df['url_2']) 
# or 
df['url_1'].fillna(df['url_2'], inplace=True) 

這應該解決這兩個問題。

+0

謝謝!發揮魅力! – Rachel