我有调查数据,答案显示在熊猫数据框中:
A B C D E
a. cattle c. bird b. cat a. cattle 1.20-60
c. bird b. cat a. cattle b. cat 3.61-103
b. cat a. cattle c. bird c. bird 2.10-19
我试图删除答案引用字符/数字('a',b','c','1.,'2',3.')和出现在实际答案之前的空白,留下如下所示:
^{pr2}$下面的代码使用的是一个字典,用于说明哪个答案引用需要替换为“”:
df[repval_cols].replace({
'a. ':'',
'b. ':'',
'c. ':'',
'1.':'',
'2.':'',
'3.':'',
}, regex=True)
[repval_cols]是数据帧中的列的列表,我希望发生这种情况。在
但是,我遇到的问题是,我在上面使用的代码删除了列中字符串中每个字符的实例,因此它给我留下了如下无意义的数据:
A B C D E
cttle ird ct cttle 0-60
ird ct cttle ct 6-0
ct cttle ird ird 0-9
有人能解释一下为什么要替换与我字典里不匹配的字符吗?我明确地说要将“a.”替换为“”而不仅仅是字符串中的任何“a”。在
如有任何建议,我们将不胜感激
这种转换不需要正则表达式。在
按
.
拆分字符串,取第二个元素和strip
以下是^{} 的文档。它将所提供的函数应用于数据帧中的每个元素,并类似于apply方法。在
您可以根据第一个句点将字符串一分为二。然后从分割对中取出第二项,去掉空白。在
对于regex语句,需要转义句点(点或
^{pr2}$.
),这是正则表达式中用于匹配任何字符的元字符。要匹配文本点,需要对其进行转义(\.
)。在您的问题是
.
点,它是regex中用于任何字符的wildcard
。 使用\.
将对其进行转义并使其成为文本点可能会解决您的问题。在因此,您的代码变成了。在
相关问题 更多 >
编程相关推荐