我想使用另一个数据集中定义的日期序列在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]
问候!
1条答案
按热度按时间ia2d9nvy1#
请尝试使用以下代码代替for循环: