我有一个带有多索引列的数据框。
我需要从此数据框中删除列子集中具有 NaN 值的行。
我正在尝试使用subset选项pd.dropna,但我无法找到指定列子集的方法。我尝试过使用pd.IndexSlice但这不起作用。
在下面的示例中,我需要乘坐最后一排。
import pandas as pd
# ---
a = [1, 1, 2, 2, 3, 3]
b = ["a", "b", "a", "b", "a", "b"]
col = pd.MultiIndex.from_arrays([a[:], b[:]])
val = [
[1, 2, 3, 4, 5, 6],
[None, None, 1, 2, 3, 4],
[None, 1, 2, 3, 4, 5],
[None, None, 5, 3, 3, 2],
[None, None, None, None, 5, 7],
]
# ---
df = pd.DataFrame(val, columns=col)
# --- …Run Code Online (Sandbox Code Playgroud) 我四处寻找我的问题的解决方案,我能找到的最好的是:
from sys import platform
if platform == "linux" or platform == "linux2":
# linux
elif platform == "darwin":
# OS X
elif platform == "win32":
# Windows...
Run Code Online (Sandbox Code Playgroud)
有谁知道我如何将 Linux PC 与 android 区分开来,因为 android 是基于 Linux 的。如果这是可能的,我如何将 Mac OS 与 iOS 区分开来
假设我有一个类似元组的列表:
listTuples = [(0, 3), (5, 10), (2, 4)]
Run Code Online (Sandbox Code Playgroud)
我想获取元组元素之间差异最大的元组索引
3 - 0 = 3
10 - 5 = 5
4 - 2 = 2
Run Code Online (Sandbox Code Playgroud)
所以我想要1作为回报。
目前,我正在执行以下操作,但是也许有更好的方法(更快,更少的代码行)来执行此操作。
listTuples = [(0, 3), (5, 10), (2, 4)]
k = 0
e = 0
for j, i in enumerate(listTuples):
diff = i[1] - i[0]
if k < diff:
k = diff
e = j
else:
pass
print(e)
Run Code Online (Sandbox Code Playgroud)