我有这个数据框,我想在特定列之前和之后选择 10 行。我已经达到了这一点,但我想知道如何在 lambda python 表达式中使它更优雅,因为我需要在循环中运行 10000 次。
import pandas as pd
df = pd.DataFrame(data=np.random.rand(90),
index=pd.date_range('2015-01-01','2015-03-31'),columns=['A'])
Run Code Online (Sandbox Code Playgroud)
我已将此作为正在进行的解决方案:
前后 10 次观察:
df.loc['2015-01-17':].head(11)[1:11].transpose() ! before
df.loc[:'2015-01-17'].tail(11)[0:10].transpose() ! after
Run Code Online (Sandbox Code Playgroud)
那么,我怎样才能让它在一个带有 lambda 表达式的循环中并且不仅有一个index而且有两个indexes?
我正在删除 pandas 数据框中的许多记录,该数据框中包含 4 列框中 NaN 的不同组合。我创建了一个名为complete_cases 的函数来提供满足以下条件的行索引:行中的所有列均为 NaN。
我在下面尝试过这个功能:
def complete_cases(dataframe):
indx = []
indx = [x for x in list(dataframe.index) \
if dataframe.loc[x, :].isna().sum() ==
len(dataframe.columns)]
return indx
Run Code Online (Sandbox Code Playgroud)
我想知道这是否足够最佳或者有更好的方法来做到这一点。