小编Fer*_*ado的帖子

熊猫:按ID分组并删除包含最多NaN值的行

我有一个Pandas DataFrame,其中有几行具有相同的ID。我想通过ID对它们进行分组,并检查哪一行包含的NaN值(或零)值最少,其余的丢弃。

我希望我的最终DataFrame每个ID仅包含一行,并且信息的最大数量为每行没有迭代行。

如果两行或更多行包含的NaN数量最少(或为零),我将应用第二个尚未定义的布尔过滤器。就像这样:

初始表:

     ID      A      B      C      D      E
1     4     56    NaN    890    aaa    907
2     4    NaN    NaN    890    aaa    907
3     7     89     78    754    bbb      1
4     7     89    NaN    754    bbb      1
5     7     89     78    754    bbb    NaN
Run Code Online (Sandbox Code Playgroud)

决赛桌:

     ID      A      B      C      D      E
1     4     56    NaN    890    aaa    907
3     7     89     78    754    bbb      1
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

1
推荐指数
1
解决办法
38
查看次数

即使文件在同一目录中,ifstream 也找不到文件

我有一种从文件中读取布尔向量的方法:

std::vector<bool> OPCConnector::getAlarmVector() {
    std::vector<bool> data;
    std::ifstream DataFile(filepath);

    if (DataFile) {
        bool value;

        while (DataFile >> value) {
            data.push_back(value);
            std::cout << value;
        }
    }
    
    return data;
}
Run Code Online (Sandbox Code Playgroud)

filepath变量是通过构造分配一个对象属性:

OPCConnector::OPCConnector(std::string fpth) {
    filepath = fpth;
}
Run Code Online (Sandbox Code Playgroud)

main()函数中,构造函数被调用:

OPCConnector::OPCConnector(std::string fpth) {
    filepath = fpth;
}
Run Code Online (Sandbox Code Playgroud)

现在,我已经检查了可执行文件的文件夹是通过GetModuleFileNameA(),并确保该文件位于同一目录中并具有相同的名称(此外,我确保扩展名不是文件名的一部分,喜欢"alarmes.txt.txt")。

我调试了第一种方法getAlarmVector(),它永远不会超过if (DataFile)条件,就好像它找不到文件一样。

我使用 Visual Studio 2019 运行代码,但没有任何反应。向量保持为空。错误是没有这样的文件或目录。

项目目录设置

默认工作目录是$(ProjectDir),它正是我的文件所在的位置。

编辑:我也尝试过使用相对路径和绝对路径,但都不起作用。

编辑 2:我还使用检查了目录GetCurrentDirectory()并将.txt文件复制到那里,但它不起作用。

解决方案:奇怪的是,我删除了该文件并使用相同的名称再次创建它,并且它起作用了。感谢您的回答。

c++ file ifstream

1
推荐指数
1
解决办法
77
查看次数

标签 统计

c++ ×1

dataframe ×1

file ×1

ifstream ×1

pandas ×1

python ×1