有人能解释这三种切片方法有何不同?
我已经看过这些文档了,我已经看到了这些 答案,但我仍然发现自己无法解释三者是如何不同的.对我来说,它们在很大程度上似乎是可以互换的,因为它们处于较低的切片水平.
例如,假设我们想获得a的前五行DataFrame.这三个都是如何运作的?
df.loc[:5]
df.ix[:5]
df.iloc[:5]
Run Code Online (Sandbox Code Playgroud)
有人可以提出三种情况,其中使用的区别更清晰吗?
所以我有一个包含5列的数据框.我想拉出所有列都是NaN的索引.我使用的是这段代码:
nan = pd.isnull(df.all)
Run Code Online (Sandbox Code Playgroud)
但这只是返回false,因为逻辑上说不是数据帧中的所有值都不为空.有数以千计的条目,所以我宁愿不必循环并检查每个条目.谢谢!
我有一个pandas.DataFrame对象,包含大约100列和200000行数据.我试图将其转换为bool数据帧,其中True表示该值大于阈值,False表示它更小,并且保持NaN值.
如果没有NaN值,我运行大约需要60毫秒:
df >= threshold
Run Code Online (Sandbox Code Playgroud)
但是当我尝试处理NaN时,下面的方法有效,但速度非常慢(20秒).
def func(x):
if x >= threshold:
return True
elif x < threshold:
return False
else:
return x
df.apply(lambda x: x.apply(lambda x: func(x)))
Run Code Online (Sandbox Code Playgroud)
有更快的方法吗?