gpt4 book ai didi

python - 使用非唯一索引在 Pandas DataFrame 中查找和更新行

转载 作者:行者123 更新时间:2023-11-28 18:29:41 28 4
gpt4 key购买 nike

我有一个带有非唯一索引的 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

但是如果我不知道行号怎么办?假设我只想将第一行的索引设置为“一”。所以,我想使用 .loc 找到切片,然后将我的新值分配给第一行。

new_data = pd.Series({'col1': 'new', 'col2': 'new', 'col3': 'new'})
df.loc['one'][0] = new_data

但是,这是使用链式索引的赋值,不太好。有没有不同的方法来做到这一点?

最佳答案

您可以使用 df.iloc[(df.index == 'one').argmax()] 访问它。

所以你的作业看起来像:

df.iloc[(df.index == 'one').argmax()] = new_data

关于python - 使用非唯一索引在 Pandas DataFrame 中查找和更新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38382872/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com