我有两列字符串,如果行中每个字符串的前3个字符匹配,我想创建一个带有“是”或“否”的列。基本上是对第1列第1行的前3个字符进行检查,并将其与第2列第1行进行比较,以查看前3个字符是否匹配的代码;如果是,则应在第3列中打印“是”,如示例所示
IE:第1行第1列扫描“p”“a”“s”,并在第1行第2列中查找,扫描“p”“a”“s”表示它们相同,在第3列中应为真
我对python相当陌生;我道歉
原始表格:
+-------------+---------+----------+
| Row Index | Col1 | Col2 |
+-------------+---------+----------+
| 1 | pasta | pastas |
| 2 | sauces | orange |
| 3 | kiwi | kiwis |
+-------------+---------+----------+
预期产出表:
+-------------+---------+----------+---------+
| Row Index | Col1 | Col2 | Col3 |
+-------------+---------+----------+---------+
| 1 | pasta | pastas | YES |
| 2 | sauces | orange | NO |
| 3 | rosin | robert | NO |
+-------------+---------+----------+---------+
我没有任何代码显示,因为我不知道如何启动它。谢谢
这是一条单行线:
经验法则:使用pandas/numpy数据所做的几乎所有事情都是矢量格式,即不使用循环
步骤1:从列中的所有字符串中提取前三个字母: 您可以通过
df['col'].str
对象对列执行几乎所有的标准字符串操作。这里:df['Col1'].str[:3]
步骤2:检查3字符前缀是否匹配:同样,您可以直接比较列以获得一列布尔值
df['Col1'].str[:3] == df['Col2'].str[:3]
步骤3:将布尔值替换为“是”和“否”。我希望你看到它的发展方向:
boolean_data.map({True: 'YES', False: 'NO'})
相关问题 更多 >
编程相关推荐