由于错字而交换所选单元格的值

时间:2018-12-08 16:14:17

标签: python pandas dataframe

我的输入数据集存在拼写错误,并且不知道如何将它们交换回来。假设数据看起来像这样

 A          B            C           D           E         F
   Yes         0            School      1           0.5       0.3
    1          No            1         Office       0.2        3.4
   No          1           University   1            4.7       4.2
   Yes         3             House      0            4.6        2.3
   0           Yes           0          House         4.5      3.1

例如,错字没有规则,但通常发生在彼此相邻的2列中,另一些保持为真,而其他为错字。在这种情况下我该如何规范我的数据?谢谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

您可能首先要检查为什么数据首先以这种格式到达。这是一个可能的解决方案,因为混合总是出现在字符串和数字之间(如果不是,可能会更复杂)

df["AB"] = df["A"] + "_" + df["B"]
df["A_"] = df["AB"].apply(lambda x: re.findall(r"\d+", x)[0])
df["B_"] = df["AB"].apply(lambda x: re.findall(r"[a-zA-Z]+", x)[0])

但是,您将需要删除原始列并重命名新列。希望这会有所帮助。