删除pandas dataframe列中第一个出现空字符串之前的所有行

时间:2018-01-11 11:08:47

标签: python pandas numpy

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中没有具有空值的行。是否有任何方法可以解决问题

1 个答案:

答案 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]