我正在从数据框中获取所有值,我无法在此处显示它,但代码中提到的所有列名称都存在于该数据框中。因为,我使用 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,但我想要这个值两次。可能的解决方案是什么?
我的数据框中没有 VMEAS_BS,因此我将使用 load_values 向您展示结果。
这是我能想到的最快的:
代替
voltage_values = df[df['VMEAS_BS'].isin(voltage_bus_value)]['VMEAS_BS_Values'].reindex().values
与所有这些行(抱歉!!)
voltage_values = []
for _,value in enumerate(voltage_values):
voltage_values.extend(df[df['VMEAS_BS'] == value]['VMEAS_BS_Values'].reindex().values)
这是一个 load_values 的示例
load_values = []
for _,value in enumerate(load_value_name):
load_values.extend(df[df['I__ND_LD']== value]['I__ND_LD_Values'].values.astype(np.int))
#output
[10, 45, 44]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)