【问题标题】:Getting NaN Values after Splitting with Boolean Masking使用布尔掩码拆分后获取 NaN 值
【发布时间】:2022-01-04 22:34:46
【问题描述】:

我正在尝试根据特定列上的值将一个巨大的数据框拆分为更小的数据框。

我基本上做的是创建一个 for 循环,然后将每个数据帧分配给一个字典。

但是,当我从字典中调用项目时,所有值都是 NaN,除了我用于拆分的 cell_id 值。

为什么会这样?

如果有更实用的方法可以做到这一点,我将不胜感激。

df_sliced_dict = {}

for cell in ex_df['cell_id'].unique():

   df_sliced_dict[cell] = ex_df[ex_df.loc[:, ['cell_id']] == cell]

【问题讨论】:

  • 请提供一个示例数据框以及所需的输出;那么帮助就更容易了。

标签: python pandas boolean


【解决方案1】:

替换

df_sliced_dict[cell] = ex_df[ex_df.loc[:, ['cell_id']] == cell]

df_sliced_dict[cell] = ex_df[ex_df['cell_id'] == cell]

在 for 循环中,它将按预期工作。

问题在于ex_df.loc[:, ['cell_id']](或ex_df[['cell_id']])是一个DataFrame,而不是一个Series,而你想要一个Series来构造你的布尔掩码。

【讨论】:

    猜你喜欢
    • 2015-11-03
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2021-08-03
    • 2013-05-17
    • 1970-01-01
    相关资源
    最近更新 更多