【发布时间】:2018-06-02 11:45:54
【问题描述】:
所以我有一个包含 180000+ 值的 DataFrame,我需要 (1) 逐行替换单元格中的重复值和某些值,以及 (2) 重新排列。这是我的数据框,df:
key sellyr brand makrc item1 item2 item3 item4 item5 item6
0 da12 2013 imp apt furi apt nan nan nan nan
1 da32 2013 sa rye rye app nan nan nan nan
2 da14 2013 sa pro not pro pan fan nan nan
........
nan 值表示 np.nan。并且禁止的字符串是'not'。
所以我需要做的是检查列 item1~6 将 makrc 列中包含的字符串替换为 nan。同样,我也想用nan's替换'not's。将字符串替换为np.nan后,需要重新排列item1~6,将非nan数据左对齐到最左边的空单元格,如下图,(预期输出):
key sellyr brand makrc item1 item2 item3 item4 item5 item6
0 da12 2013 imp apt furi nan nan nan nan nan
1 da32 2013 sa rye app nan nan nan nan nan
2 da14 2013 sa pro pan fan nan nan nan nan
........
正如您在第一个索引中看到的那样,我已删除 item2 中的 apt 字符串并更改为 np.nan,因为相同的字符串位于 makrc 列中。在索引 1 中,我删除了黑麦并替换为 np.nan。但是这一次,我将“app”字符串从 item2 重新排列到 item1,因为 np.nan 值应该在值之后。在索引 2 中,我替换了 pro 而不是,因为我需要将 item 列中的每个“not”字符串替换为 np.nan。我也重新安排了项目。
我尝试将所有项目列组合为一个列表并替换它,但有几行只有 np.nan 项目。你们能推荐一个理想的过程来解决我的问题吗?非常感谢。
【问题讨论】:
标签: python string pandas dataframe nan