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

标签 python excel pandas csv

我对编码还很陌生,最近我在工作中完成了一个非常小的 Pandas 类(class),这门类(class)的一部分是考虑一个我们想要改进的项目。我希望能够从 CSV 或 Excel 文件中识别表格中的缺失值,然后列出这些缺失值。 导入的 CSV 文件示例:

Company 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 US, 2015, 2012

MSFT US, 2013

SNAP US, 2015, 2014

FB US, 2012, 2011

我知道如何计算它们等等,但我希望看到某种形式的最终列表。

谢谢!

最佳答案

第一个set_index , 通过 isnull 检查 NaNs最后生成 list s by apply with filtering:

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]

或者如果想要字符串:

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

关于python - 识别缺失值并返回包含这些值的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47051028/

相关文章:

python - 我如何抓取该网站以便按列表对候选人进行分类?

SQL 查询在 SQL Server 中有效,在 Excel 中失败(Microsoft 查询)

excel - 使用VBA在word中复制表格前面的文本行

python - 从 Python 脚本在 Excel 中创建绘图

python - 根据 pandas 数据框中的混合数据类型查找相似的行

python - 使用 Python 保存下载的 CSV 文件

python - Python 中 list.index(x) 的复杂性

python - 计算不规则时间序列数据中值的变化

python - 无法导入名称 GoogleMaps

Python 相当于 SQL Rank