【发布时间】:2019-08-01 16:59:13
【问题描述】:
我正在从无法在此处显示的数据框中获取所有值,但代码中提到的所有列名都存在于此数据框中。因为,我使用 isin() 方法从列中获取值。 isin() 方法不会给你重复的值,但我也想要重复的值。在上面的代码中,我展示了我如何使用 isin() 方法从多个列中获取多个值。在电压值变量中,我使用了 isin() 方法,该方法不获取重复值。我能做什么不删除重复值。
start_values = [1,2,3]
load_value_name = [f"^I__ND_LD({n})" for n in start_values]
load_values=df[df['I__ND_LD'].isin(load_value_name)]['I__ND_LD_Values'].values.astype(np.int)
print(load_values)
bus_names = [f"^I__BS_ND({n})" for n in load_values]
print(bus_names)
bus_values = df[df['I__BS_ND'].isin(bus_names)]['I__BS_ND_Values'].values.astype(np.int)
print(bus_values)
voltage_bus_value = [f"^VMEAS_BS({n})" for n in bus_values]
print(voltage_bus_value)
voltage_values = df[df['VMEAS_BS'].isin(voltage_bus_value)]['VMEAS_BS_Values'].reindex().values
print(voltage_values)
上面显示了对应的输出
load_values=[10 45 44]
bus_names=['^I__BS_ND(10)', '^I__BS_ND(45)', '^I__BS_ND(44)']
bus_values=[ 5 17 17]
voltage_bus_value=['^VMEAS_BS(5)', '^VMEAS_BS(17)', '^VMEAS_BS(17)']
voltage_values=[0.9908185 0.99612296]
我们可以看到“^VMEAS_BS(17)”出现了两次,但在数组中我只得到一个值,即 0.99612296,但我想要这个值两次。有什么可能的解决方案。
【问题讨论】:
-
嗨。请花时间阅读how to provide a great pandas example 上的这篇文章以及如何提供minimal, complete, and verifiable example 并相应地修改您的问题。 how to ask a good question 上的这些提示也可能有用。
-
嗯,我的问题是我没有你的数据,所以无法测试你的解决方案。
-
嗨,安莫尔。我现在正在检查。我不明白为什么你不应该得到所有的值,包括重复的。你有新的df还是和上次一样?
-
啊,好的。我想我明白问题出在哪里了。是的, isin() 不起作用。让我想想办法……
-
它和我们上次讨论的一样。非常感谢