[英]fetch section of a string from column in 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 Kingdom
670591897 3 2016-12 Singapore
670585330 5 2019-4 India
這是我第一次用 python 做任何事情,我對簡單的語法並不完全清楚。
我的目標是通過獲取字符串中符號“-”之后的所有字符並將它們存儲到不同的列中來將月份與“年月”列分開(除非字符串的值是“缺失”。在這種情況下,它根本不考慮。)我嘗試了多種方法,其中之一是:
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
那根本行不通。 這正是我現在正在搞砸的事情,但我確實接近了一個工作代碼,但我只是不知道如何擺脫“丟失”的數據。
我最終要解決的問題是“一年中哪個時期是游客參觀每個主題公園的高峰時間”,所以請考慮我最終必須得到 plot 的結果。
您可以嘗試在此處使用str.replace
:
df['Year'] = df['Year_Month'].str.replace('-.*$', '');
df['Month'] = df['Year_Month'].str.replace('^\d+-', '');
請注意,由於missing
的字符串值與任一正則表達式模式都不匹配,因此在這種情況下,缺失的Year_Month
值會將missing
分配給年和月列。
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.