Tôi có một danh sách 4 khung dữ liệu gấu trúc có chứa dữ liệu đánh dấu ngày mà tôi muốn hợp nhất vào một khung dữ liệu duy nhất. Tôi không thể hiểu được hành vi của concat trên dấu thời gian của tôi. Xem chi tiết dưới đây:Pandas DataFrame concat vs chắp thêm
data
[<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 35228 entries, 2013-03-28 00:00:07.089000+02:00 to 2013-03-28 18:59:20.357000+02:00
Data columns:
Price 4040 non-null values
Volume 4040 non-null values
BidQty 35228 non-null values
BidPrice 35228 non-null values
AskPrice 35228 non-null values
AskQty 35228 non-null values
dtypes: float64(6),
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 33088 entries, 2013-04-01 00:03:17.047000+02:00 to 2013-04-01 18:59:58.175000+02:00
Data columns:
Price 3969 non-null values
Volume 3969 non-null values
BidQty 33088 non-null values
BidPrice 33088 non-null values
AskPrice 33088 non-null values
AskQty 33088 non-null values
dtypes: float64(6),
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 50740 entries, 2013-04-02 00:03:27.470000+02:00 to 2013-04-02 18:59:58.172000+02:00
Data columns:
Price 7326 non-null values
Volume 7326 non-null values
BidQty 50740 non-null values
BidPrice 50740 non-null values
AskPrice 50740 non-null values
AskQty 50740 non-null values
dtypes: float64(6),
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 60799 entries, 2013-04-03 00:03:06.994000+02:00 to 2013-04-03 18:59:58.180000+02:00
Data columns:
Price 8258 non-null values
Volume 8258 non-null values
BidQty 60799 non-null values
BidPrice 60799 non-null values
AskPrice 60799 non-null values
AskQty 60799 non-null values
dtypes: float64(6)]
Sử dụng append
tôi nhận được:
pd.DataFrame().append(data)
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 179855 entries, 2013-03-28 00:00:07.089000+02:00 to 2013-04-03 18:59:58.180000+02:00
Data columns:
AskPrice 179855 non-null values
AskQty 179855 non-null values
BidPrice 179855 non-null values
BidQty 179855 non-null values
Price 23593 non-null values
Volume 23593 non-null values
dtypes: float64(6)
Sử dụng concat
tôi nhận được:
pd.concat(data)
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 179855 entries, 2013-03-27 22:00:07.089000+02:00 to 2013-04-03 16:59:58.180000+02:00
Data columns:
Price 23593 non-null values
Volume 23593 non-null values
BidQty 179855 non-null values
BidPrice 179855 non-null values
AskPrice 179855 non-null values
AskQty 179855 non-null values
dtypes: float64(6)
Thông báo như thế nào chỉ số thay đổi khi sử dụng concat
. Tại sao điều đó xảy ra và tôi sẽ sử dụng concat
để tái tạo các kết quả thu được bằng cách sử dụng append
như thế nào? (Vì số concat
có vẻ nhanh hơn rất nhiều, 24,6 ms mỗi vòng lặp so với 3,02 giây trên mỗi vòng lặp)
Cảm ơn bạn đã trả lời, giải thích sự khác biệt về thời gian tính toán. Bất kỳ con trỏ nào là tại sao chỉ số của tôi đột nhiên thay đổi một cách ngẫu nhiên? – JPBelanger
hmm trông giống như vấn đề múi giờ, sẽ gửi báo cáo lỗi – Jeff
Được đánh giá cao! Cảm ơn sự giúp đỡ của bạn. – JPBelanger