pandas - 如果对象包含符号 python Pandas,则替换第一个字符

  显示原文与译文双语对照的内容
99 4

我有 Pandas Dataframe中的字符串对象:


['10/2014', '2014','9/2013']



如何替换它们以获得以下结果:


['2014','2014','2013']



时间:

52 0

你可以替换所需的字符串


import pandas as pd


df = pd.DataFrame({'co1':['10/2014', '2014','9/2013']})


df.co1.str.replace("^[w]*/","") # pass in the pattern you want to replace



输出


0 2014


1 2014


2 2013



原作者:
88 5

如果你想要用 '/' 分隔的最后一组字符,请尝试:


[k.split('/')[-1] for k in ['10/2014', '2014','9/2013']]



输出:


['2014', '2014', '2013']



112 0

你可以执行以下操作:


a = pd.DataFrame(['10/2014', '2014','9/2013'])



a[0].str[-4:]



这将保留最后 4个字符

77 0

你可以创建一个函数,该函数处理将值( 如有必要) 和使用 apply 与要格式化的列分开的函数:

假设以下 df:


raw_data = {'col0': ['1', '2', '3'],


 'col1': ['10/2014', '2014','9/2013']}


df = pd.DataFrame(raw_data, columns = ['col0', 'col1'])



我们可以:


def splitter(df):


 try:


 df = df.split('/')[1]


 except IndexError:


 pass


 return df



df = df['col1'].apply(splitter)



输出:


0 2014


1 2014


2 2013



原作者:
78 4

dft = pd.DataFrame(['10/2014', '2014','9/2013'], columns=['date'])


dft['date'] = pd.to_datetime(dft['date']) # Convert column with string to datetime


dft['date'] = dft['date'].dt.year.astype(str) # Convert the integer year back to string



给出:


0 2014


1 2014


2 2013


Name: date, dtype: object



99 5

对于具有长度为 4的整数,使用 Series.str.extract 正规表达式 d{4}:


df = pd.DataFrame({'col':['10/2014', '2014','9/2013']})



df['year'] = df['col'].str.extract('(d{4})')


print (df)


 col year


0 10/2014 2014


1 2014 2014


2 9/2013 2013



原作者:
...