gpt4 book ai didi

python - Pandas:如何使用 bool 索引定义的另一个单元格的值正确设置 bool 索引定义的值?

转载 作者:太空宇宙 更新时间:2023-11-03 15:02:50 25 4
gpt4 key购买 nike

我想使用 bool 索引在数据帧中选择一个值,并用同样使用 bool 索引选择的同一数据帧中的另一个值填充它。

现在的问题当然是,我不能期望它们中的任何一个返回恰好一个值,即使我可以,语法也不能。

所以现在我必须做这样的事情:

import pandas as pd
import numpy as np
L1 = ['A','A','A','A','B','B','B','B']
L2 = ['a','b','c','d','a','b','c','d']
L3 = [1,2,3,4,5,6,7,8]
df = pd.DataFrame({"L1":L1,"L2":L2,"L3":L3})

filtered = df.loc[(df.L1 == 'B')&(df.L2 == 'c'),"L3"]
if not filtered.empty:
value = filtered.values[0]
else:
value = np.nan
df.loc[(df.L1 == 'A')&(df.L2 == 'c'),"L3"] = value

首先,我必须选择返回一系列的目标值,然后必须确保其中至少有一个值,然后我才能设置它。

如果我不确定是否只有一个值,我就必须考虑返回多个值的情况以及如何处理这种情况。

有没有一种更短更优雅的方法来做到这一点,基本上是一个函数,它表示“满足条件 XYZ 的值用满足条件 ABC 的值填充”,可以提供处理多个值的函数,例如意思是还是第一个?

最佳答案

我认为你可以使用Series.item if 需要仅过滤一个值,但不幸的是 if else:

value = np.nan if filtered.empty else filtered.item()

关于python - Pandas:如何使用 bool 索引定义的另一个单元格的值正确设置 bool 索引定义的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44918910/

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