python - 如何在python中用NaN替换空系列值
问题描述
我正在迭代多个列并将它们的汇总统计信息(如平均值、中值、偏度和峰度)存储在字典中,如下所示:
metrics_dict['skewness'] = data_col.skew().values[0]
metrics_dict['kurtosis'] = data_col.kurt().values[0]
metrics_dict['mean'] = np.mean(data_col)[0]
metrics_dict['median'] = np.median(data_col)
但是对于某些列,它会给出如下错误:
IndexError: index out of bounds
有问题的列如下:
Index device
61021 C:2
61022 D:3+
61023 D:3+
61024 B:1
61025 D:3+
61026 C:2
我只是想在这样的列的情况下将 NA 附加到 dict 并且不会让错误中断我的循环。这里 index 只是数据帧的索引,操作的列是设备。请注意,数据有大量的数字列(~500),其中 2 -3 列就像设备一样,因此我只需将 NA 添加到这些列的字典中,然后转到下一列。有人可以告诉我如何在 python 中做到这一点吗?
解决方案
由于这些统计信息仅对数字列有意义,因此您可以尝试隔离数字列。这可以使用pd.DataFrame.select_dtypes
:
numerics = ['int16', 'int32', 'int64', 'float16', 'float32', 'float64']
numeric_cols = df.select_dtypes(include=numerics).columns
for col in df:
if col in numeric_cols:
# calculate & add some values to dictionary
else:
# add NA values to dictionary
推荐阅读
- swift3 - 如何使用 Alamofire 从 JSON 获取数据?
- jenkins - 抑制 Jenkins 中的脚本化管道输出
- swift - 模拟器黑屏
- javascript - 将表单输入值添加到 InnerHTML 输出
- perl - 使用 XML::Twig 提取 XML 的子集
- facebook-graph-api - 为 Facebook 应用创建的测试用户数
- r - 如何测试向量中的每个值是否与字符串向量中的任何值匹配?
- nullpointerexception - 无法识别 NullPointerException 的来源
- java - Java a.add(b) 方法
- python - 使用 Tatsu / grako 使用无大小写关键字解析代码