gpt4 book ai didi

python - 将月份名称和年份合并到列中 pandas python

转载 作者:行者123 更新时间:2023-12-01 00:11:23 25 4
gpt4 key购买 nike

df

Year   Month Name    Avg
2015 Jan 12
2015 Feb 13.4
2015 Mar 10
...................
2019 Jan 11
2019 Feb 11

代码

df['Month Name-Year']= pd.to_datetime(df['Month Name'].astype(str)+df['Year'].astype(str),format='%b%Y')

在数据帧 df 中,groupby 输出平均值位于键月份名称和年份上。所以月份名称和年份实际上是多级索引。我想创建第三列“月份名称年份”,以便我可以使用数据执行一些操作(创建绘图等)。

我使用代码得到的输出如下:

   Year   Month Name    Avg        Month Name-Year
2015 Jan 12 2015-01-01
2015 Feb 13.4 2015-02-01
2015 Mar 10 2015-03-01
...................
2019 Nov 11 2019-11-01
2019 Dec 11 2019-12-01

等等。

我想要的输出是“月份名称-年份”列中的 2015-Jan、2015-Feb 等...或者我想要 2015-01、2015-02...2019-11、2019-12 等(仅年份和月,没有天)。

请帮忙

最佳答案

一种解决方案是转换为日期时间,然后按 Series.dt.to_period 更改格式或Series.dt.strftime :

df['Month Name-Year']=pd.to_datetime(df['Month Name']+df['Year'].astype(str),format='%b%Y')

#for months periods
df['Month Name-Year1'] = df['Month Name-Year'].dt.to_period('m')
#for 2010-02 format
df['Month Name-Year2'] = df['Month Name-Year'].dt.strftime('%Y-%m')

最简单的解决方案是不转换为日期时间,仅使用 - 连接并将年份转换为字符串:

#format 2010-Feb
df['Month Name-Year3'] = df['Year'].astype(str) + '-' + df['Month Name']

...与转换为日期时间然后转换为自定义字符串相同:

#format 2010-Feb
df['Month Name-Year31'] = df['Month Name-Year'].dt.strftime('%Y-%b')

关于python - 将月份名称和年份合并到列中 pandas python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59612363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com