在python中从列中获取字符串的部分
我正在使用一个类似以下内容的数据库:在python中从列中获取字符串的部分,python,Python,我正在使用一个类似以下内容的数据库: Review_ID Rating Year_Month Reviewer_Location 670772142 4 2019-4 Australia 670682799 4 2020-5 Philippines 670623270 4 missing United Arab Emirates 670607911 4 missing Australia 670607296 4 2014-11 United K
Review_ID Rating Year_Month Reviewer_Location
670772142 4 2019-4 Australia
670682799 4 2020-5 Philippines
670623270 4 missing United Arab Emirates
670607911 4 missing Australia
670607296 4 2014-11 United Kingdom
670591897 3 2016-12 Singapore
670585330 5 2019-4 India
这是我第一次用python做任何事情,我对简单的语法还不太清楚
我的目标是通过提取字符串中符号“-”后的所有字符,将月份与“年-月”列分开,并将它们存储到不同的列中(除非字符串的值为“缺少”。在这种情况下,根本不考虑它)。我尝试了多种方法,其中之一是:
yf=df['Year\u Month']
而yf!='失踪的
如果yf中的“-”为:
存储[0]=i
i+=1
存储[1]=(i)
df['Month']=商店
其他:
i+=1
存储
您可以在此处尝试使用str.replace
:
df['Year'] = df['Year_Month'].str.replace('-.*$', '');
df['Month'] = df['Year_Month'].str.replace('^\d+-', '');
请注意,由于字符串值
missing
与任一正则表达式模式都不匹配,因此在这种情况下,missingYear\u Month
值将missing
分配给Year和Month列。您可以尝试在此处使用str.replace
:
df['Year'] = df['Year_Month'].str.replace('-.*$', '');
df['Month'] = df['Year_Month'].str.replace('^\d+-', '');
df = {'Year_Month':['2019-4','2020-5','missing','missing','2014-11','2016-12','2019-4']}
d = pd.DataFrame(df)
for ym in df['Year_Month']:
if ym != 'missing':
year,month = ym.split('-')
print(year,month)
请注意,由于字符串值missing
与任一正则表达式模式都不匹配,因此在这种情况下,missingYear\u Month
值将missing
分配给Year和Month列
df = {'Year_Month':['2019-4','2020-5','missing','missing','2014-11','2016-12','2019-4']}
d = pd.DataFrame(df)
for ym in df['Year_Month']:
if ym != 'missing':
year,month = ym.split('-')
print(year,month)