Ошибка здесь в том, что вы обращаетесь к df.loc
со списком индексов, например:
df.loc[df.TypeOfPerson.isin(["Son", "Daughter"]) & (df.Age <= 18)]
вернет фрейм данных с несколькими строками. Поэтому, когда вы помещаете его за if
, он спрашивает, как оценить этот фрейм данных как логическое значение, будет ли это any
ячеек True
или all
ячеек True
и т. Д.
Один из способов исправить ошибку - указать указанную операцию, или, в вашем случае, вы хотите узнать, есть ли в доме дети, вы можете просто проверить длину отрезанного кадра данных:
for i in df["HouseholdNumber"].unique():
# you didn't use this i in your code
ppl_in_house = (df.HouseholdNumber == i)
is_child = df.TypeOfPerson.isin(["Son", "Daughter"])
num_children = sum(ppl_in_house & is_child)
[ 1111] Конечно, это только один способ решить вашу проблему, а не лучший.
Назовите GetIfEntry и ищите dwType IF_TYPE_ETHERNET_CSMACD в возвращенной структуре MIB_IFROW.
Или в.NET, ищите Систему. Сеть. NetworkInformation. NetworkInterface с NetworkInterfaceType Ethernet.
Я не уверен в ответе - но знать, что возможно иметь несколько интерфейсов Ethernet.
Если машина имеет два NICs, как Вы выберете, какой является правильным? Единственным путем я видел, что сделанный дает пользователю выпадающую комбинацию с IP-адресом каждого интерфейса. См. Wireshark для примера -
Если бы существуют другие решения, я хотел бы услышать их -
Проверьте интерфейс через: Назовите GetIfEntry и ищите dwType IF_TYPE_ETHERNET_CSMACD в возвращенной структуре MIB_IFROW.
Или в.NET, ищите Систему. Сеть. NetworkInformation. NetworkInterface с NetworkInterfaceType Ethernet.
И проверьте, содержит ли имя текст, "Виртуальный".
---Это походит на хромой способ проверить, но до сих пор это - единственный метод, который я вижу для игнорирования тех виртуальных 802,3 адаптеров.
Лучшим способом я видел до сих пор с любой системой Windows 2000 SP2, и использует WMI.
http://msdn.microsoft.com/en-us/library/aa394582 (По сравнению с 85) .aspx
Win32_NetworkAdapter http://msdn.microsoft.com/en-us/library/aa394216 (по сравнению с 85) .aspx
И можно использовать Систему пространства имен. Сеть. NetworkInformation Jay упоминается. Вот ссылка об обнаружении, какие сетевые платы подключены или разъединены: