Pandas Dataframes,如何去除每个特定列或索引的 NaN 和 Dublicates?

Pandas Dataframes, How to get rid of NaN and Dublicates per specific column or index?

第一个问题。

我有一个 df:

        165  232  237
KKI-11  NaN    T  NaN
KKI-12  NaN    A  NaN
KKI-5     S    T    G
KKI-12    G    A    A
KKI-5     S  NaN    G
KKI-11    G  NaN    A
KKI-5   NaN  NaN  NaN
KKI-11  NaN  NaN  NaN
KKI-12  NaN  NaN  NaN

or like this:

        232  237  232  165  237  165
KKI-11    T  NaN  NaN  NaN    A    G
KKI-12    A    A    A    G  NaN  NaN
KKI-5   NaN    G    T    S    G    S

如您所见,对于每个索引和列(案例 1 的多个相等索引,案例 2 的列), 对于虚构简化形式的每个单元格来说,这意味着有一个值。 我怎样才能操纵这个数据帧之一看起来像:

            165     232     237

KKI-5       S       T        G

KKI-11      G       T        A

KKI-12      G       A        A

希望你能帮助我以这种特定方式删除所有 NaN 和重复项。 谢谢

一种方法是对索引进行排序(获取彼此相邻的相似值),对排序后的索引进行分组,backward/upward 填充、删除空值并删除重复项

df.sort_index().groupby(level=0).bfill().dropna().drop_duplicates()

       165  232 237
KKI-11  G   T   A
KKI-12  G   A   A
KKI-5   S   T   G

另一种方式和逻辑就像链接方法一样:

df=df.dropna(how='all').fillna(method='ffill').dropna(how='any')).drop_duplicates(keep='last')

      165    232    237
KKI-5   S    T      G
KKI-5   S    A      G
KKI-11  G    A      A