根据日期顺序在PandasDataFrame中创建新列

bogh5gae  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(119)

我想使用另一个数据集中定义的日期序列在pd.DataFrame中创建一个列。
我已经想出了下面的解决方案,但我想知道是否有一个更Python,也更快的方式来做到这一点。
示例 Dataframe :

import numpy as np
import pandas as pd

np.random.seed(2)

df1 = pd.DataFrame({
    "start": pd.date_range(start="1/1/2022", end="1/5/2022", freq="D"),
    "stop": pd.date_range(start="1/2/2022", end="1/6/2022", freq="D"),
    "seq_id": np.random.choice(["a", "b", "c"], size=5)
})

df2 = pd.DataFrame({
    "V1": np.random.randint(1, 10, 121),
    "seq_id": str()
}, index=pd.date_range(start="1/1/2022", end="1/6/2022", freq="H"))

当前的解决方案:

for i in range(len(df1)):
    df2.loc[df1.start[i]:df1.stop[i], "seq_id"] = df1.seq_id[i]

问候!

ia2d9nvy

ia2d9nvy1#

请尝试使用以下代码代替for循环:

df2["seq_id"] = df1.seq_id.values

相关问题