1 回答
TA贡献1799条经验 获得超9个赞
我认为日期laptop很糟糕,因为有些年份是 2010 年。我已将其更改为 2019 以获得所需的结果
笔记本电脑是:
start end Laptop
2019-01-29 2019-01-04 2019-01-29 Acer
2019-02-26 2019-02-03 2019-02-26 Toshiba
2019-03-30 2019-03-01 2019-03-30 Mac
您可以使用:
lst=[]
i=0
while i<len(laptop.index):
data['Laptop']=laptop.loc[laptop.index[i],'Laptop']
lst.append((data.loc[(laptop.loc[laptop.index[i],'start']<=data.index) & (laptop.loc[laptop.index[i],'end']>=data.index)][['Laptop',data['Laptop'][0]]].rename(columns={data['Laptop'][0]:'Prices'})))
print(lst[i])
print('-'*50)
i+=1
new_df=pd.concat([df for df in lst])
data=data.drop(['Laptop'], axis=1)
print(new_df)
输出:
Laptop Prices
date
2019-01-04 Acer 754.23
2019-01-05 Acer 753.69
2019-01-11 Acer 754.21
2019-01-28 Acer 752.61
2019-01-29 Acer 753.43
--------------------------------------------------
Laptop Prices
date
2019-02-03 Toshiba 966.60
2019-02-04 Toshiba 964.72
2019-02-09 Toshiba 965.20
2019-02-19 Toshiba 963.20
2019-02-26 Toshiba 962.20
--------------------------------------------------
Laptop Prices
date
2019-03-01 Mac 1153.13
2019-03-30 Mac 1156.94
--------------------------------------------------
Laptop Prices
date
2019-01-04 Acer 754.23
2019-01-05 Acer 753.69
2019-01-11 Acer 754.21
2019-01-28 Acer 752.61
2019-01-29 Acer 753.43
2019-02-03 Toshiba 966.60
2019-02-04 Toshiba 964.72
2019-02-09 Toshiba 965.20
2019-02-19 Toshiba 963.20
2019-02-26 Toshiba 962.20
2019-03-01 Mac 1153.13
2019-03-30 Mac 1156.94
我已经连接了DataFrame每个laptop你可以离开而不连接的
添加回答
举报