看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
在数据格式处理时,我们需要对不同格式的数据按不同的方式进行转换,在本例中,我们将时间格式的处理为带月日易读的形式,非时间形式的保持不变。
构造数据如下:
import pandas as pd
df = pd.DataFrame({'转换前': ['测试1', '测试2', *['2020/6/30']*6]})
df
'''
转换前
0 测试1
1 测试2
2 2020/6/30
3 2020/6/30
4 2020/6/30
5 2020/6/30
6 2020/6/30
7 2020/6/30
'''
此数据有一列,名为转换前,需要我们增加一个名为转换后的列,对时间形式转为x月x日格式,其他的形式的不变。
类型 2020/6/30 是一个标准的时间形式, pandas 的 pd.to_datetime() 函数可以识别,我们试着用它来进行转换,转换后进行字符格式化,如果无法转换成功则返回原数据。
将以上转换逻辑写一个函数,用 map 来应用,最后赋到一个新列。
写来写这个转换函数:
def func(v):
try:
time = pd.to_datetime(v)
return time.strftime('%m月%d日')
except Exception as e:
return v
用 map 应用函数并指定到新列:
df.assign(测试后=df.转换前.map(func))
'''
转换前 测试后
0 测试1 测试1
1 测试2 测试2
2 2020/6/30 06月30日
3 2020/6/30 06月30日
4 2020/6/30 06月30日
5 2020/6/30 06月30日
6 2020/6/30 06月30日
7 2020/6/30 06月30日
'''
这样就完成了需求。
(完)
更新时间:Aug. 18, 2024, 4 p.m. 标签:pandas python 时间 类型