如何合并 pandas DataFrame 中的 2 列?
How to combine 2 columns in pandas DataFrame?
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["start"] = data["start1"] + '-' + data["start2"]
data["start"] = pd.to_datetime(data["start"], format="%H-%M")
# then do the other conversions.
尝试:
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")
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["start"] = data["start1"] + '-' + data["start2"]
data["start"] = pd.to_datetime(data["start"], format="%H-%M")
# then do the other conversions.
尝试:
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")