gpt4 book ai didi

python - 将一列中的字符串连接到 df 中的多列的优雅方法

转载 作者:行者123 更新时间:2023-11-28 22:27:18 25 4
gpt4 key购买 nike

我有一个 df 结构如下:

   CUID    DATE        T1         T2         T3
0 1000 5/5/2016 3:58:54 4:02:00 4:15:05
1 1001 5/6/2016 17:23:39 17:24:00 17:44:32
2 1002 5/7/2016 18:20:50 18:22:00 18:37:34
3 1003 5/7/2016 21:30:29 21:35:00 21:45:51
4 1004 5/9/2016 22:33:19 22:34:00 22:41:54
...

我想获取日期(字符串)并连接到每个时间字符串(即 T1、T2、T3)。换句话说,我希望它看起来像这样:

  CUID    DATE             T1                  T2                 T3
0 1000 5/5/2016 5/5/2016 3:58:54 5/5/2016 4:02:00 5/5/2016 4:15:05
1 1001 5/6/2016 5/5/2016 17:23:39 5/5/2016 17:24:00 5/5/2016 17:44:32
2 1002 5/7/2016 5/5/2016 18:20:50 5/5/2016 18:22:00 5/5/2016 18:37:34
3 1003 5/7/2016 5/5/2016 21:30:29 5/5/2016 21:35:00 5/5/2016 21:45:51
4 1004 5/9/2016 5/5/2016 22:33:19 5/5/2016 22:34:00 5/5/2016 22:41:54
...

我知道我可以使用以下代码执行此操作:

df['T1'] = pd.to_datetime(df.DATE.str.cat(' ' + df['T1']))
df['T2'] = pd.to_datetime(df.DATE.str.cat(' ' + df['T2']))
df['T3'] = pd.to_datetime(df.DATE.str.cat(' ' + df['T3']))

但我想知道是否有更优雅/更高效的方式?

最佳答案

您可以调用 apply 并在 lambda 中添加带空格的 DATE 列和感兴趣的列。

这里 apply 将遍历子选择的列:

In[8]:
df.loc[:,'T1':] = df.loc[:,'T1':].apply(lambda x: df['DATE'] + ' ' + x)
df

Out[8]:
CUID DATE T1 T2 T3
0 1000 5/5/2016 5/5/2016 3:58:54 5/5/2016 4:02:00 5/5/2016 4:15:05
1 1001 5/6/2016 5/6/2016 17:23:39 5/6/2016 17:24:00 5/6/2016 17:44:32
2 1002 5/7/2016 5/7/2016 18:20:50 5/7/2016 18:22:00 5/7/2016 18:37:34
3 1003 5/7/2016 5/7/2016 21:30:29 5/7/2016 21:35:00 5/7/2016 21:45:51
4 1004 5/9/2016 5/9/2016 22:33:19 5/9/2016 22:34:00 5/9/2016 22:41:54

关于python - 将一列中的字符串连接到 df 中的多列的优雅方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44116201/

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