【问题标题】:how to make a new column by joining to existing column in pandas如何通过加入熊猫中的现有列来创建新列
【发布时间】:2017-06-23 02:44:41
【问题描述】:

我知道这个问题有很多类似的类型,但我无法通过现有答案找到解决方法。这是一个简单的问题,但我仍然坚持这个小问题。我有很多列的数据。我想使用两个现有列创建一个新列。像这样的:

Index Date         Time 
0     26-10-2017   06:00:00
1     26-10-2017   06:15:00
2     26-10-2017   06:30:00

现在我需要一个应该如下所示的新列:

Index Date         Time       Datetime
0     26-10-2017   06:00:00   26-10-2017 06:00:00
1     26-10-2017   06:15:00   26-10-2017 06:15:00
2     26-10-2017   06:30:00   26-10-2017 06:30:00

我现在无法做到这一点。我目前得到一个包含两个字符串值的元组,但我不想要这个:

Index Date         Time       Datetime
0     26-10-2017   06:00:00   ('26-10-2017', '06:00:00')
1     26-10-2017   06:15:00   ('26-10-2017', '06:15:00')
2     26-10-2017   06:30:00   ('26-10-2017', '06:30:00')

我正在使用以下代码:

df5['Datetime'] = list(zip(df5.Date, df5.Time))

有没有我可以按我想要的方式而不是在元组中获取值?

【问题讨论】:

    标签: python pandas datetime timedelta


    【解决方案1】:

    你需要sum转换列Dateto_datetime和列Timeto_timedelta

    df.Date = pd.to_datetime(df.Date)
    df.Time = pd.to_timedelta(df.Time)
    df['Datetime'] = df.Date + df.Time
    print (df)
                Date     Time            Datetime
    Index                                        
    0     2017-10-26 06:00:00 2017-10-26 06:00:00
    1     2017-10-26 06:15:00 2017-10-26 06:15:00
    2     2017-10-26 06:30:00 2017-10-26 06:30:00
    
    print (df.dtypes)
    Date         datetime64[ns]
    Time        timedelta64[ns]
    Datetime     datetime64[ns]
    dtype: object
    

    【讨论】:

      【解决方案2】:

      假设列是字符串,将它们相加并使用pd.to_datetime

      df.assign(DateTime=pd.to_datetime(df.Date + ' ' + df.Time))
      
         Index        Date      Time            DateTime
      0      0  26-10-2017  06:00:00 2017-10-26 06:00:00
      1      1  26-10-2017  06:15:00 2017-10-26 06:15:00
      2      2  26-10-2017  06:30:00 2017-10-26 06:30:00
      

      【讨论】:

      • 是的,它成功了!我只需要让我的一个列字符串其他已经是一个字符串。非常感谢!
      猜你喜欢
      • 1970-01-01
      • 2019-06-28
      • 2022-08-09
      • 1970-01-01
      • 2022-12-19
      • 2019-11-25
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      相关资源
      最近更新 更多