3
我有一個帶有非唯一索引的熊貓DataFrame,我需要更新其中一行。我可以,如果我可以索引它數值更新該行,如下:使用非唯一索引在Pandas DataFrame中查找並更新行
array = np.random.randint(1, 10, (3, 3))
df = pd.DataFrame(array, index=['one', 'one', 'two'], columns=['col1', 'col2', 'col3'])
# df looks like this:
# col1 col2 col3
#one 2 3 6
#one 3 1 5
#two 4 5 2
new_data = pd.Series({'col1': 'new', 'col2': 'new', 'col3': 'new'})
df.iloc[0] = new_data
但如果我不知道的行數?假設我只想設置索引爲「1」的第一行。所以,我想使用.loc
找到切片,然後將我的新值賦給第一行。
new_data = pd.Series({'col1': 'new', 'col2': 'new', 'col3': 'new'})
df.loc['one'][0] = new_data
但是,這是使用鏈接索引,這是不是很好。有沒有不同的方式來做到這一點?
這確實做什麼,我問,但它是不是很普及。如果我想要索引爲'one'而不是第一行的_last_行,我不能只使用'argmin()'。有沒有更廣泛的方式來做到這一點? –
@JJones是的,創建一個**唯一的**索引。 – piRSquared
@JJones問題是你需要指定一個在匹配的索引組中進行選擇的規則。我挑戰你指定你想要泛化的是什麼?你想要一種通用的方式來抓住特定比賽的第n個?如果是這樣,我會問另一個問題。這個問題確實要求第一個'一個'。 – piRSquared