簡體   English   中英

從 python 的列中獲取字符串的一部分

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM