我有一些看起來像這樣的資料:
City 1994 1995 1996 1997
Rome X NaN NaN NaN
New York NaN NaN NaN NaN
Paris NaN X NaN NaN
Sidney NaN NaN NaN NaN
十字架表示該城市在該特定年份發生了事件。我想在我的資料框中添加新的年份,其中的資料如下所示:
City 1998
Rome X
Sidney X
London X
Madrid X
基本上,新資料表明事件在新的不同年份發生在哪里(所以它總是有“X”)。我正在尋找的結果應該是這樣的:
City 1994 1995 1996 1997 1998
Rome X NaN NaN NaN X
New York NaN NaN NaN NaN NaN
Paris NaN X NaN NaN NaN
Sidney NaN NaN NaN NaN X
London NaN NaN NaN NaN X
Madrid NaN NaN NaN NaN X
因此,它應該將新的不存在的城市添加到城市串列中,并將 NaN 表示為該城市已經存在的年份,并在新添加的年份表示事件發生的城市。
我嘗試使用df.append()但我得到重復值
City 1994 1995 1996 1997 1998
Rome X NaN NaN NaN NaN
New York NaN NaN NaN NaN NaN
Paris NaN X NaN NaN NaN
Sidney NaN NaN NaN NaN NaN
Rome NaN NaN NaN NaN X
Sidney NaN NaN NaN NaN X
London NaN NaN NaN NaN X
Madrid NaN NaN NaN NaN X
我也嘗試過使用,df.merge()但沒有得到更好的結果。關于如何使用熊貓來做這件事的任何建議?我可以撰寫一些代碼來手動完成,但這違背了使用如此強大工具的目的。
uj5u.com熱心網友回復:
您可以使用df.merge()來實作這一點。
import pandas as pd
data = [['Rome','X', None, None, None],['New York' ,None, None, None, None], ['Paris',None, 'X', None, None]]
df = pd.DataFrame(data, columns = ['City','1994', '1995', '1996' , '1997' ])
df.head()
City 1994 1995 1996 1997
0 Rome X None None None
1 New York None None None None
2 Paris None X None None
df2 = pd.DataFrame([['Rome', 'X', ],['Sydney','X'], ['London','X']], columns = ['City', '1998'])
City 1998
0 Rome X
1 Sydney X
2 London X
然后就可以合并這兩個DataFrame
df.merge(df2, how='outer')
City 1994 1995 1996 1997 1998
0 Rome X None None None X
1 New York None None None None NaN
2 Paris None X None None NaN
3 Sydney NaN NaN NaN NaN X
4 London NaN NaN NaN NaN X
您需要將外部指定為要執行的合并型別。
外部:使用來自兩個幀的鍵并集,類似于 SQL 完全外部聯接;按字典順序對鍵進行排序。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/406619.html
標籤:
