if(df_TA.index[df_TA['GSNumber'].isnull()][0] is None):
df_TA=df_TA.loc[:]
else:
idx=df_TA.index[df_TA['GSN'].isnull()][0]
df_TA=df_TA.loc[:idx-1]
I have many dataframes some of them contain null in a column followed by columns having value which is not required.I want to remove those extra occurence(remove all the rows of dataframe preceding the null column) after the first null value of the GNS column.
例如。 原始数据框
GNS name
1 John
2 Lily
xyz bcd
输出数据帧:
GNS name
1 John
2 Lily
我编写的代码解决了问题但引发了异常
IndexError: index 0 is out of bounds for axis 0 with size 0
只要if条件中的条件成立,即它们在GNS col中没有具有空值的行。是否有任何方法可以解决问题
答案 0 :(得分:0)
我认为您有问题,无法选择空idx
,因此if-else
是必要的。如果没有df_TA.index[-1]
s值,NaN
也可用于选择所有行。
idx = df_TA.index[df_TA['GSN'].isnull()]
idx = df_TA.index[-1] if idx.empty else idx[0] - 1
df_TA=df_TA.loc[:idx]