Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 中的isin()方法忽略重复的值。我们如何防止这种情况?_Python_Pandas_Dataframe - Fatal编程技术网

Python 中的isin()方法忽略重复的值。我们如何防止这种情况?

Python 中的isin()方法忽略重复的值。我们如何防止这种情况?,python,pandas,dataframe,Python,Pandas,Dataframe,我正在从数据帧中获取所有的值,我不能在这里显示,但是代码中提到的所有列名都存在于这个数据帧中。因为,我使用isin()方法从列中获取值。isin()方法不提供重复的值,但我也需要重复的值。在上面的代码中,我展示了如何使用isin()方法从多个列中获取多个值。在voltage_values变量中,我使用了不获取重复值的isin()方法。我可以做什么不删除重复值 start_值=[1,2,3] 加载\u值\u名称=[f“^I\u和\u LD({n})”表示开始\u值中的n] 加载值=df[df['I

我正在从数据帧中获取所有的值,我不能在这里显示,但是代码中提到的所有列名都存在于这个数据帧中。因为,我使用isin()方法从列中获取值。isin()方法不提供重复的值,但我也需要重复的值。在上面的代码中,我展示了如何使用isin()方法从多个列中获取多个值。在voltage_values变量中,我使用了不获取重复值的isin()方法。我可以做什么不删除重复值

start_值=[1,2,3]
加载\u值\u名称=[f“^I\u和\u LD({n})”表示开始\u值中的n]
加载值=df[df['I_u和LD'].isin(加载值名称)]['I_u和LD'].values.astype(np.int)
打印(加载值)
总线名称=[f“^I\u BS\u ND({n})”表示n个负载值]
打印(总线名称)
总线值=df[df['I_uubs_ND'].isin(总线名称)]['I_ubs_ND_value'].values.astype(np.int)
打印(总线值)
电压_总线_值=[f“^VMEAS_BS({n})”表示n个总线_值]
打印(电压\总线\值)
电压值=df[df['VMEAS_-BS'].isin(电压总线值)]['VMEAS_-BS_-values'].reindex().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\u BS,因此我将用load\u值显示结果

这是我能想到的最快的方法:

替代品

voltage_values = df[df['VMEAS_BS'].isin(voltage_bus_value)]['VMEAS_BS_Values'].reindex().values
有这么多台词(对不起!!)

下面是一个具有load_值的示例

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]

你好请花点时间阅读这篇文章,以及如何提供答案,并相应地修改你的问题。这些提示可能也很有用。嗯,我的问题是我没有你的数据,所以无法测试你的解决方案。嗨,anmol。我正在查。我不明白为什么你不应该得到所有的值,包括重复的值。你有新的df还是和上次一样?啊,好的。我想我知道问题出在哪里了。是的,isin()不起作用。让我想一个解决办法……和我们上次讨论的一样。非常感谢你,你需要做一个循环,因为你不能选择一行两次,当然。所以如果你想要两次,你需要打两次电话。这与您解决的问题相同唯一的问题是isin()方法存在重复值。我们可以移动到聊天室吗?我不能聊天,因为我有14个信誉。它至少应该是20Noop,不可用。你使用skype吗?根据评论,我只有13个声誉。至少需要20分钟。还需要7个吗?
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]