项目场景:

在我的日常工作中需要经常处理时间,例如需要将2022年1月16日8时处理成2022011608,或各种格式,但遇到的文件通常五花八门,其中有一个场景是年月日和时分开,或年月日时本身是分开,这就需要将它们拼接到一起。
如要把date和hour列拼到一起。
要把在这里插入图片描述

问题描述:

我会经常出现错误的做法,就是直接在列表外面加str(),企图把列表里的元素转换成字符串再拼接,这……显然是不行的……这里记录一下:

a = [1,2,3]
b = [1,2,3]
c = str(a) + str(b)
print(c)
输出:'[1,2,3][1,2,3]'

原因分析:

str函数对单个的元素有用,但对列表使用str,是将整个列表转换为字符串,+号对单个元素有拼接的作用,但在这里是将两个列表直接拼接到一起,显然达不到我的预期。


解决方案:

方法一:
其实这里的+号仍然管用,只不过要将列表中的元素变成字符串,推荐用pandas读取数据,如上面的文件:

df['date'] = df['date'].astype('str')
df['hour'] = df['hour'].astype('str')
datetime = df['date'] + df['hour']

方法二:
还是用pandas读取数据,用.str.cat这个方法,但前提仍然是先变成字符串,例:

df['date'] = df['date'].astype('str')
df['hour'] = df['hour'].astype('str')
df['date'].str.cat(df['hour'])

还可以在中间加分隔符或加一列特殊的字符,具体可见:
https://www.jianshu.com/p/c1d99d14603d

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐