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

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

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

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

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

['2014','2014','2013']
时间:原作者:0个回答

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
原作者:
...