我正在使用一个数据库,它看起来像这样:
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做任何事情,我对简单的语法并不完全清楚。
我的目标是通过获取字符串中符号'-‘之后的所有字符,将月份与’年-月‘列分开,并将它们存储到不同的列中(除非字符串的值是'missing’。在这种情况下,根本不考虑它。)我尝试过多种方法,其中之一是:
yf=df['Year_Month']
while yf!='missing'
if '-' in yf:
store[0]=i
i+=1
store[1]=(i)
df['Month'] = store
else:
i+=1
store
这根本不起作用。这只是我现在胡乱摆弄的东西,但我确实接近了一个可以工作的代码,但我就是想不出如何摆脱“丢失”的数据。
我最终试图解决的问题是“一年中哪一段时间是游客参观每个主题公园的高峰期”,因此请考虑我最终必须绘制结果。
发布于 2020-08-07 17:27:26
您可以尝试在此处使用str.replace:
df['Year'] = df['Year_Month'].str.replace('-.*$', '');
df['Month'] = df['Year_Month'].str.replace('^\d+-', '');注意,由于字符串值missing与任一正则表达式模式都不匹配,在本例中,缺少的Year_Month值会将missing分配给year和month列。
发布于 2020-08-07 18:08:27
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)https://stackoverflow.com/questions/63298819
复制相似问题