【问题标题】:How to combine 2 columns in pandas DataFrame?如何在 pandas DataFrame 中合并 2 列?
【发布时间】:2021-10-24 19:43:32
【问题描述】:

Hello! This is a CSV table.我试图将 CSV 输出与 Python 结合起来创建甘特图。 CSV 文件中的每一列表示一个日期时间,例如start1 是小时,start2 - 分钟。之后,我使用pd.to_datetime(data["start1"], format="%H") 进行正确格式化。与start2 相同。 事情是这样的:我如何将 pandas DataFrame 中的这两列结合起来以获得"%H-%M" 格式的一列?像数据[“开始”]。这是data.head() output and 代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import timedelta

#import data
data = pd.read_csv('TEST.csv')

#convert data str to "datetime" data
data["start1"] = pd.to_datetime(data["start1"], format="%H")
data["start2"] = pd.to_datetime(data["start2"], format="%M")
data["end1"] = pd.to_datetime(data["end1"], format="%H")
data["end2"] = pd.to_datetime(data["end2"], format="%M")

【问题讨论】:

  • 您能否包含data.head() 的输出,以便我们查看小时和分钟格式?

标签: python pandas datetime gantt-chart


【解决方案1】:

在将数据类型更改为日期时间之前,您可以添加一个额外的列,如下所示:

data["start"] = data["start1"] + '-' + data["start2"]
data["start"] = pd.to_datetime(data["start"], format="%H-%M")
# then do the other conversions.

【讨论】:

    【解决方案2】:

    试试:

    data["start"] = pd.to_datetime(data["start1"].astype(str).str.pad(2, fillchar="0") + 
                                   data["start2"].astype(str).str.pad(2, fillchar="0"), 
                                   format="%H%M")
    data["end"] = pd.to_datetime(data["end1"].astype(str).str.pad(2, fillchar="0") + 
                                 data["end2"].astype(str).str.pad(2, fillchar="0"), 
                                 format="%H%M")
    

    【讨论】:

    • 现在我收到 TypeError:无法添加 DatetimeArray 和 DatetimeArray。也许我需要用 timedelta 方法进行总结?
    • data.dtypes 的输出是什么?
    • 事情是这样的:我需要使用 MathCAD Prime CSV 输出,这个程序只能使用数字。因此,例如,当我的意思是 12:00 时,它将 12 到“start1”列,0 到“start2”。最后,我希望新列以“%H:%M 格式开头。我相信 datatime + timedetla 方案应该可以工作。当我将这些列格式化为 %H 和 %M 时,它们的格式必须是 datatime。我希望这能成功更清晰
    • 我包含了 data.head() 输出和一个 csv 表
    • @AddmiX - 已编辑。它适用于您提供的示例。
    猜你喜欢
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2020-02-14
    相关资源
    最近更新 更多