python - Pandas:更详细地从多列中删除空值

标签 python pandas null

import matplotlib.pyplot as plt
import pandas as pd

data = pd.DataFrame({ 'X': [1, 2, 3],
                      'Y': [4, 5, 6],
                      'A1': [1, None, 3],
                      'A2': [4, 5, 6],
                      'A3': ['Not', 'being', 'used'],
                      'A4': [None, 3, 3, None] })

_ = plt.figure()
_ = plt.hist([ data['A1'][pd.notnull(data['A1'])],
               data['A2'][pd.notnull(data['A2'])],
               data['A4'][pd.notnull(data['A4'])] ],
             label=['A1', 'A2', 'A4'])
_ = plt.legend()
_ = plt.show()

有什么方法可以减少 plt.hist 第一个参数中的重复和冗长吗? ,我反复调用 pd.notnull(data['A1|2|3'])删除 None数据集中的值?

编辑:似乎强调了绘图,但我只是为了举例而使用它 - 我实际上想学习如何更好地处理这些数据框。

最佳答案

您需要 DataFrame.hist 这似乎省略了 None s:

#specify columns for plot
cols = ['A1','A2','A4']
data[cols].plot.hist()

graph

编辑:

存在需要单独处理列的问题,因此一种可能的解决方案是 list comprehension dropna :

cols = ['A1','A2','A4']
a = [data[x].dropna() for x in cols]
_ = plt.figure()
_ = plt.hist(a,label=cols)
_ = plt.legend()
_ = plt.show()

graph

关于python - Pandas:更详细地从多列中删除空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45189698/

相关文章:

python - 从具有日期范围的 DataFrame 创建 Pandas 每日聚合时间序列

java - C++ 中的 NULL 和 Java 中的 null 有什么区别?

python - Pandas 数据帧KeyError : 'the label [2019-01-14] is not in the [index]'

python - 将 pandas dtypes 转换为 BigQuery 类型表示

c# - 检查 : null vs default()?

php - 函数分配一个不为空的参数

php - 与同一 python 脚本的多个实例共享变量的最佳方法

Python pylab 绘图传奇科学写作

python - 哪个小部件用于显示类似于调色板 gtk3 的颜色

python - 我在这个乒乓球游戏中画了一个边界,但 Racket 可以越过它。我该如何阻止它?