Python 如何基于空格和逗号分隔Pandas中的变量
嗨,我需要删除每个逗号后面的一个单词。例如,如果列中的第一个索引为Python 如何基于空格和逗号分隔Pandas中的变量,python,pandas,Python,Pandas,嗨,我需要删除每个逗号后面的一个单词。例如,如果列中的第一个索引为 'stack overflow, ask question , keep remove' (请注意,它们都在一个刺中) 我需要输出是 'stack, ask, keep' (这是一个字符串) 因此,第一个单词保留,其余单词在每个逗号后删除。 我用了。分开,但我没有得到结果。 这是我的方法 final_re= [mydf.mycolumn.str.split(' ')[index][0] for index in range
'stack overflow, ask question , keep remove'
(请注意,它们都在一个刺中)
我需要输出是
'stack, ask, keep'
(这是一个字符串)
因此,第一个单词保留,其余单词在每个逗号后删除。
我用了。分开,但我没有得到结果。
这是我的方法
final_re= [mydf.mycolumn.str.split(' ')[index][0] for index in range(0, len(mydf))]
在本例中,它保留第一个单词,表示输入是否正确
'stack overflow, ask question , keep remove'
我的输出将是公正的
'stack'
然而,我需要把它放出来
'stack, ask, keep'
我很感激你的建议
import re
import pandas as pd
row = [['stack overflow', 'ask question', 'keep remove'],
['stack overflow', 'ask question', 'keep remove']]
df = pd.DataFrame(row)
func = lambda x: re.findall('(\w+) \w+', x)[0] if re.findall('(\w+) \w+', str(x)) else x
df = df.applymap(func)
print(df.head())
您可以使用正则表达式捕获由(\w+)表示的第一个单词,并忽略由空格和\w+表示的空格后的单词。如果它找到这样一个字符串,表示空格前的单词,它将用这个单词替换原来的字符串。如果找不到,它会保持原样。你必须先尝试,然后在尝试中提出问题。虽然这段代码可能会回答这个问题,但如何或为什么解决这个问题会真正有助于提高你的帖子质量。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在回答中添加解释,并说明适用的限制和假设。