Python 熊猫:替换特定的第n个字符

Python 熊猫:替换特定的第n个字符,python,replace,pandas,Python,Replace,Pandas,我是初学者,正在学习python。 虽然我熟悉SAS,但Python语言与SAS不同。 所以,我一直在通过搜索语法和其他内容逐步学习python语言 我想知道如何用pandas替换子字符串,比如SAS中的“SUBSTR” 具体来说,我想将YYYYMM(年-月格式)转换为yyyq(年-季度格式)。i、 e 为此,我应该每5~6个字符替换1个字符 通过搜索这个主题,我了解了replace()的基本语法。但我不能适用于我的具体问题 我附上下面的代码示例 from pandas import DataF

我是初学者,正在学习python。 虽然我熟悉SAS,但Python语言与SAS不同。 所以,我一直在通过搜索语法和其他内容逐步学习python语言

我想知道如何用pandas替换子字符串,比如SAS中的“SUBSTR”

具体来说,我想将
YYYYMM
(年-月格式)转换为
yyyq
(年-季度格式)。i、 e

为此,我应该每5~6个字符替换1个字符

通过搜索这个主题,我了解了replace()的基本语法。但我不能适用于我的具体问题

我附上下面的代码示例

from pandas import DataFrame
import numpy as np
import pandas as pd


df = DataFrame({'date' : ['201101','201102','201103','201104','201105','201106']},
                 index = ['1','2','3','4','5','6'])
df['new_date'] = df['date'].str.replace('01','1')
print(df)

我认为你应该把约会当作适当的日期,而不是字符串。看看熊猫

要将YYYYMM字符串示例解释为日期,请使用字符串格式
%Y%m

In [21]: df['date'] = pd.to_datetime(df['date'], format='%Y%m')

In [22]: df
Out[22]: 
        date
1 2011-01-01
2 2011-02-01
3 2011-03-01
4 2011-04-01
5 2011-05-01
6 2011-06-01

[6 rows x 1 columns]
然后使用回滚功能从每个日期获取季度开始日期。有许多不同的“偏移”可用。我不认为这是你想要的,但这说明了这个过程。更多信息,请查看文档

In [23]: from pandas.tseries.offsets import BQuarterBegin

In [24]: offset = BQuarterBegin()

In [25]: df['date'].apply(offset.rollback)
Out[25]: 
1   2010-12-01
2   2010-12-01
3   2011-03-01
4   2011-03-01
5   2011-03-01
6   2011-06-01
Name: date, dtype: datetime64[ns]

你能提供一个小例子来说明你想做什么吗?对不起。因为这是我的第一个问题,我写得不仔细。根据您的回复,我编辑了我的问题。在此期间,您的回答是非常感谢和有用的。不用担心,我认为提供示例代码(正如您所做的那样)是继续StackOverflow的方法,所以以后继续这样做:)。欢迎使用StackOverflow和Python。
In [23]: from pandas.tseries.offsets import BQuarterBegin

In [24]: offset = BQuarterBegin()

In [25]: df['date'].apply(offset.rollback)
Out[25]: 
1   2010-12-01
2   2010-12-01
3   2011-03-01
4   2011-03-01
5   2011-03-01
6   2011-06-01
Name: date, dtype: datetime64[ns]