Python 对数据帧中连续数目的空值进行计数

Python 对数据帧中连续数目的空值进行计数,python,pandas,isnull,Python,Pandas,Isnull,假设我有一个带有一些空值的数据帧。对于每一行,如何获得空值所属列的计数。例如,在下面显示的数据帧的第2行中,如何让它打印/返回列“A”和“B”,其中有空值 为了更大的背景,我有一个关于Billboard单打的表格,以及他们每周收到的分数(总共76周,76列),都作为数据框列。有些星期会有空值,因为特定歌曲的表现不够好,我想在特定歌曲的行中找到df.isnull()为True的列 df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), col

假设我有一个带有一些空值的数据帧。对于每一行,如何获得空值所属列的计数。例如,在下面显示的数据帧的第2行中,如何让它打印/返回列“A”和“B”,其中有空值

为了更大的背景,我有一个关于Billboard单打的表格,以及他们每周收到的分数(总共76周,76列),都作为数据框列。有些星期会有空值,因为特定歌曲的表现不够好,我想在特定歌曲的行中找到df.isnull()为True的列

df = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=list('ABCD'))
df.ix[4, 'C'] = np.nan
df.ix[4, 'B'] = np.nan
df.ix[2, 'B'] = np.nan
df.ix[2, 'A'] = np.nan
df.ix[6,'D'] = np.nan
df.ix[6,'C'] = np.nan
df
您可以使用
apply()。这将返回列名称列表,其中每行的值为空:

import pandas as pd
df.apply(lambda row: row.index[row.isnull()].tolist(), axis = 1)

#0        []
#1        []
#2    [A, B]
#3        []
#4    [B, C]
#5        []
#6    [C, D]
#7        []
#8        []
#9        []
#dtype: object

以文本形式共享代码,如果需要更好的帮助,请不要使用无法使用的屏幕截图