我想转身
pd.DataFrame({'Id':['A','B'],
'beginDate':['2017-01-01','2017-01-03'],
'endDate':['2017-01-02','2017-01-05']})
Id beginDate endDate
0 A 2017-01-01 2017-01-02
1 B 2017-01-02 2017-01-05
进入
pd.DataFrame({'Id':['A','A','A','B','B','B','B'],
'Date':['2017-01-01','2017-01-02','2017-01-03','2017-01-02',
'2017-01-03','2017-01-04','2017-01-05']})
Date Id
0 2017-01-01 A
1 2017-01-02 A
2 2017-01-03 A
3 2017-01-02 B
4 2017-01-03 B
5 2017-01-04 B
6 2017-01-05 B
其概念是用开始日期和结束日期之间的所有值填充第二个数据帧
我可以成功地使用for循环,并为每个唯一的'Id'附加一个新的数据帧,但这非常慢
for循环通过在每一行上循环使用下面的语句
def dfChange(uniqueId, startDate, endDate):
allDates = pd.date_range(startDate, endDate)
df = pd.DataFrame({'Date':allDates})
df['Id'] = uniqueId
return df
不使用for循环就可以这样做吗
可以使用^{} 和^{} 来首先重塑形状
然后将索引转换为^{}
最后用^{} 调用^{} 和^{}
所有数据都在
index
中,因此请按[[]]
选择“无列”相关问题 更多 >
编程相关推荐