0
我最近開始與熊貓一起工作,並且試圖對數據進行一些簡單的清理。到目前爲止,我已經瞭解到使用熊貓時有很多單線程。所以我正在尋找一個在我的情況。我有DataFrame
這樣的:熊貓 - 使用其他列的值替換NaN值
C0 C1 C2 C3 C4
3789507 2010 NaN NaN NaN
3789508 NaN NaN 2010 NaN
3789509 NaN NaN 2016 NaN
3789510 NaN 2014 NaN NaN
3789511 NaN NaN NaN 2014
我想這樣的事情結束了:
C0 C1
3789507 2010
3789508 2010
3789509 2016
3789510 2014
3789511 2014
我現在這樣簡單地說就是:
k = df.C1.isnull()
df.C1[k] = df.C2[k]
k = df.C1.isnull()
df.C1[k] = df.C3[k]
k = df.C1.isnull()
df.C1[k] = df.C4[k]
這是工作,但並不是最好的解決方案。如果我將列100列?循環這裏唯一的解決方案?
萬一我的for循環看起來像這樣:
for i in range(2,len(df.columns)):
k = df.C1.isnull()
df.C1[k] = df.ix[:,i]
只有一個問題 - 如果它不是一個大麻煩,你能解釋它是如何工作的嗎?我應該從後面讀嗎?我的意思是這個真實的案例與選定的列。 – sebap123
好的,看看'C4'有一個值的行,但其他列都丟失了。 'df.bfill(axis ='columns')'創建一個新的數據幀,該行中'C4'左邊的每個缺失值從'C4'得到值。 「C4」中的有效值被「回填」到所有缺失的列中。然後,我們只需將回填的C1列複製到原始數據框中即可。 – Marius
非常感謝 - 現在我明白了。 – sebap123