识别缺失值并返回包含这些值的列表

我对编码相当陌生,最近我在工作中做了一个很小的pandas课程,而这门课的一部分就是考虑一个我们想要改进的项目。 我希望能够从CSV或Excel文件中识别表格中的缺失值,然后列出这些缺失值。 导入的CSV文件示例:

公司2016年2015年2014年2013年2012年2011年2010年

AAPL US 31 NaN 21.0 3.0 NaN 80.0 7

MSFT US 72 8.0 67.0 NaN 93.0 30.0 37

SNAP US 51 NaN NaN 7.0 33.0 16.0 44

FB US 49 56.0 33.0 97.0 NaN NaN 98

成:

AAPL美国,2015年,2012年

MSFT美国,2013年

SNAP US,2015,2014

FB美国,2012年,2011年

我知道如何计算他们等,但我想看到一个最终确定的列表。

谢谢!

首先set_index ,通过isnull检查NaN ,最后通过过滤apply生成list s:

 df = (df.set_index('Company') .isnull() .apply(lambda x : x.index[x].tolist(), 1) .reset_index(name='val')) print (df) Company val 0 AAPL US [2015, 2012] 1 MSFT US [2013] 2 SNAP US [2015, 2014] 3 FB US [2012, 2011] 

或者如果想要string s:

 df = df.set_index('Company') s = np.where(df.isnull(), ['{}, '.format(x) for x in df.columns], '') df = pd.Series([''.join(x).strip(', ') for x in s], index=df.index).reset_index(name='val') print (df) Company val 0 AAPL US 2015, 2012 1 MSFT US 2013 2 SNAP US 2015, 2014 3 FB US 2012, 2011