Python 两个空格之间的字符
我有下面这样的数据帧Python 两个空格之间的字符,python,pandas,Python,Pandas,我有下面这样的数据帧 df = pd.DataFrame({'vals': [1, 2, 3, 4, 5], 'ids': [u'a iball is', u'aaa vcat ll', u'c cnut bb', u'fdfdf qbell l', 'bxyz zbat c']}) 我试图用ids列中的x替换第一个和第二个空格位置之间的第一个字符串 我希望我的数据框看起来像这样 df = pd.DataFrame({'vals': [1, 2, 3, 4, 5], 'ids': [u'a x
df = pd.DataFrame({'vals': [1, 2, 3, 4, 5], 'ids': [u'a iball is', u'aaa vcat ll', u'c cnut bb', u'fdfdf qbell l', 'bxyz zbat c']})
我试图用ids列中的x替换第一个和第二个空格位置之间的第一个字符串
我希望我的数据框看起来像这样
df = pd.DataFrame({'vals': [1, 2, 3, 4, 5], 'ids': [u'a xball is', u'aaa xcat ll', u'c xnut bb', u'fdfdf xbell l', 'bxyz xbat c']})
使用
str。用捕获组替换
\1
将应用于字符串开头空格后的第一个单词
^
在行首断言模式
\w
匹配任何单词[A-Za-z0-9]
+
是一种贪婪匹配,以尽可能多地匹配上一个令牌
df['ids'].str.replace('(^\w+\s)(\w{1})', r'\1x')
0 a xball is
1 aaa xcat ll
2 c xnut bb
3 fdfdf xbell l
4 bxyz xbat c
Name: ids, dtype: object
使用str。用捕获组替换
\1
将应用于字符串开头空格后的第一个单词
^
在行首断言模式
\w
匹配任何单词[A-Za-z0-9]
+
是一种贪婪匹配,以尽可能多地匹配上一个令牌
df['ids'].str.replace('(^\w+\s)(\w{1})', r'\1x')
0 a xball is
1 aaa xcat ll
2 c xnut bb
3 fdfdf xbell l
4 bxyz xbat c
Name: ids, dtype: object
如果不使用正则表达式,这将很好地工作:
import pandas as pd
df = pd.DataFrame({'vals': [1, 2, 3, 4, 5], 'ids': [u'a iball is', u'aaa vcat ll', u'c cnut bb', u'fdfdf qbell l', 'bxyz zbat c']})
for row in df.iterrows():
temp = row[1]['ids'].split()
val = temp[1]
val = 'x'+val[1:]
temp[1] = val
s = " ".join(temp)
df.loc[df['ids']==row[1]['ids'], 'ids'] = s
df
如果不使用正则表达式,这将很好地工作:
import pandas as pd
df = pd.DataFrame({'vals': [1, 2, 3, 4, 5], 'ids': [u'a iball is', u'aaa vcat ll', u'c cnut bb', u'fdfdf qbell l', 'bxyz zbat c']})
for row in df.iterrows():
temp = row[1]['ids'].split()
val = temp[1]
val = 'x'+val[1:]
temp[1] = val
s = " ".join(temp)
df.loc[df['ids']==row[1]['ids'], 'ids'] = s
df
这真的很有帮助。。。感谢you@Vikram不客气,这是个有趣的问题。很高兴为我的朋友编码。这真的很有帮助。。。感谢you@Vikram不客气,这是个有趣的问题。很高兴认识我的朋友。