我想制作一个日期间隔为一周的数据框。我使用以下代码生成日期列表,但是当我要将其放入数据框时,出现此错误:
ValueError:DataFrame构造函数未正确调用!
你能给我个欢乐吗?
static Future<List<Ticket>> ticketDataStream(userID) async {
final databaseReference = Firestore.instance;
List<Ticket> tickets = List<Ticket>();
await for (var snapshot in databaseReference
.collection('bets')
.where('userID', isEqualTo: userID)
.snapshots()) {
for (var document in snapshot.documents) {
Ticket ticket = Ticket();
ticket.status = document.data['status'];
ticket.numOfMatches = document.data['numOfMatches'];
ticket.returnAmount = document.data['return'];
ticket.totalOdds = document.data['odds'];
ticket.dateTime = document.data['dateTime'].toDate();
ticket.betAmount = document.data['betAmount'];
ticket.ticketID = document.documentID;
tickets.add(ticket);
}
return tickets;
}
return null; //TODO: be sure that is not a problem
}
}
答案 0 :(得分:0)
这里不需要循环
OP_dates = pd.DataFrame(perdelta(date(1997, 7, 19), date(2020, 5, 25), timedelta(days=7)))
使用循环:
OP_dates = pd.DataFrame()
for dates in perdelta(date(1997, 7, 19), date(2020, 5, 25), timedelta(days=7)):
OP_dates = pd.DataFrame.append(OP_dates, [dates])
答案 1 :(得分:0)
您熟悉pandas.date_range
吗?我相信这正是您想要的:
import pandas as pd
date_range = pd.date_range('7-19-1997','5-25-2020',freq='1W')
#if you want the dates as entries
df = pd.DataFrame(date_range)
#or if you want the dates as the index:
df = pd.DataFrame(index=date_range)
好像有人刚刚使用您的perdelta
函数发布了一个修复程序,该函数也可以工作-问题是您的for
循环试图为perdelta
生成的每个日期制作一个DataFrame,而不是为perdelta
产生的日期的集合/数组制作单个DataFrame。
JSYK,您也可以将datetimes
与pandas.date_range
一起使用,而不是我使用的时间字符串。