在我的日常工作中需要经常处理时间,例如需要将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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)