我有一个大的数据框,我需要清理,作为一个样本,请看看这个数据框
import pandas as pd
cars = {'Brand': ['Honda Civic','Toyota Corolla','Ford Focus','Audi A4','Suzuki'],
'Price': ['22000.T','25000.T','27000','.TPX','.NKM1']
}
df = pd.DataFrame(cars, columns = ['Brand', 'Price'])
print (df)
我想从单词的末尾删除“.T”,只从包含单词的行的开头删除“.”
通过以下代码行,我可以删除“.T”
df['Price'].replace('.T', '', regex=True)
但它也从“.TPX”中删除了“T”
任何关于这方面的建议都将不胜感激
0 22000
1 25000
2 27000
3 PX
4 .NKM1
Name: Price, dtype: object
也用于在添加此行时删除“.”
f['Price'].replace('.', '', regex=True)
我得到了与预期不同的数据帧
0
1
2
3
4
Name: Price, dtype: object
您还可以使用^{} :
另一种方法是使用^{} ,并使用^{} 和^{} 满足您的条件:
Series.str.replace
Series.str.extract
正则表达式详细信息:
^
:在行的开始处断言位置(?:\.)
:与字符.
匹配的非捕获组?
:与以前的非捕获组零次或一次匹配(.*?)
:捕获与除行终止符以外的任何字符匹配的组,零次或多次,但次数尽可能少(lazy match
)(?:\.T)
:与.T
匹配的非捕获组?
:与以前的非捕获组零次或一次匹配$
:断言行末尾的位置见^{}
相关问题 更多 >
编程相关推荐