pandas将两列字符串拼接到一起组成新的一列

pandas将两列字符串拼接到一起组成新的一列,第1张

pandas将两列字符串拼接到一起组成新的一列 项目场景:

在我的日常工作中需要经常处理时间,例如需要将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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5720683.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存