Tôi có một số dữ liệu hàng quý mà tôi cần chuyển đổi thành hàng tháng để làm việc với một bộ dữ liệu khác. Dữ liệu trông như thế này:
Date Value
1/1/2010 100
4/1/2010 130
7/1/2010 160
Những gì tôi cần làm là áp đặt các giá trị trong những tháng bị thiếu để nó trông như thế này:
Date Value
1/1/2010 100
2/1/2010 110
3/1/2010 120
4/1/2010 130
5/1/2010 140
6/1/2010 150
7/1/2010 160
Không thể tìm thấy nhiều câu hỏi trước đây về cách làm điều này. Chỉ ngược lại [hàng tháng đến hàng quý]. Tôi đã thử một trong những phương pháp đó ngược lại, nhưng nó không hoạt động:
pd.PeriodIndex[df.Date, freq='M']
Điều gì sẽ là cách dễ nhất để thực hiện việc này trong gấu trúc?
Một công ty có một thách thức trong việc tách dữ liệu thành tháng. Nó đã nhận được dữ liệu sau:
Quý 1 | 700 |
Quý 2 | 650 |
Việc phân chia trong các tháng trong mỗi quý là bằng nhau. Mục tiêu của bạn là tách dữ liệu này thành định dạng danh sách chứa số tiền mỗi tháng trong hai quý đầu tiên.
Bạn có thể sử dụng
8:Date Value
1/1/2010 100
2/1/2010 110
3/1/2010 120
4/1/2010 130
5/1/2010 140
6/1/2010 150
7/1/2010 160
# convert to period df['Date'] = pd.to_datetime[df['Date']].dt.to_period['M'] # set Date as index and resample df.set_index['Date'].resample['M'].interpolate[]
Output:
Value Date 2010 - 01 100.0 2010 - 02 110.0 2010 - 03 120.0 2010 - 04 130.0 2010 - 05 140.0 2010 - 06 150.0 2010 - 07 160.0
Gợi ý: 2
Đối với một khung dữ liệu hàng quý như thế này :, 4 ngày trước chuyển đổi dữ liệu hàng quý thành hàng tháng và điền các giá trị bị thiếu trong gấu trúc; Python gấu trúc điền vào dữ liệu với các giá trị bị thiếu; Chức năng của gấu trúc để điền các giá trị bị thiếu từ các dữ liệu khác, tôi muốn điền vào tháng bị thiếu và quay lại GDP và đánh giá mỗi tháng và nhận được một khung dữ liệu như thế này:
date gdp rate 0 2003 / 3 / 1 523.82 0.1 1 2003 / 6 / 1 1172.83 0.2 2 2003 / 9 / 1 1882.48 0.4 3 2003 / 12 / 1 3585.72 0.1 4 2004 / 3 / 1 706.77 0.2
df['date'] = pd.to_datetime[df['date']] df = df.sort_values[by = ['date'], ascending = [True]] df.set_index['date', inplace = True] df = df.asfreq['MS', method = 'bfill'].to_period['M'].reset_index[] print[df] date gdp rate 0 2003 - 03 523.82 0.1 1 2003 - 04 1172.83 0.2 2 2003 - 05 1172.83 0.2 3 2003 - 06 1172.83 0.2 4 2003 - 07 1882.48 0.4 5 2003 - 08 1882.48 0.4 6 2003 - 09 1882.48 0.4 7 2003 - 10 3585.72 0.1 8 2003 - 11 3585.72 0.1 9 2003 - 12 3585.72 0.1 10 2004 - 01 706.77 0.2 11 2004 - 02 706.77 0.2 12 2004 - 03 706.77 0.2
dategdp rate 0 2003 / 3 / 1 523.82 0.1 1 2003 / 6 / 1 1172.83 0.2 2 2003 / 9 / 1 1882.48 0.4 3 2003 / 12 / 1 3585.72 0.1 4 2004 / 3 / 1 706.77 0.2
dategdp rate 0 2003 - 03 523.82 0.1 1 2003 - 04 1172.83 0.2 2 2003 - 05 1172.83 0.2 3 2003 - 06 1172.83 0.2 4 2003 - 07 1882.48 0.4 5 2003 - 08 1882.48 0.4 6 2003 - 09 1882.48 0.4 7 2003 - 10 3585.72 0.1 8 2003 - 11 3585.72 0.1 9 2003 - 12 3585.72 0.1 10 2004 - 01 706.77 0.2 11 2004 - 02 706.77 0.2 12 2004 - 03 706.77 0.2
df['date'] = pd.to_datetime[df['date']] df = df.sort_values[by = ['date'], ascending = [True]] df.set_index['date', inplace = True] df = df.asfreq['MS', method = 'bfill'].to_period['M'].reset_index[] print[df] dategdp rate 0 2003 - 03 523.82 0.1 1 2003 - 04 1172.83 0.2 2 2003 - 05 1172.83 0.2 3 2003 - 06 1172.83 0.2 4 2003 - 07 1882.48 0.4 5 2003 - 08 1882.48 0.4 6 2003 - 09 1882.48 0.4 7 2003 - 10 3585.72 0.1 8 2003 - 11 3585.72 0.1 9 2003 - 12 3585.72 0.1 10 2004 - 01 706.77 0.2 11 2004 - 02 706.77 0.2 12 2004 - 03 706.77 0.2
Date Value
1/1/2010 100
2/1/2010 110
3/1/2010 120
4/1/2010 130
5/1/2010 140
6/1/2010 150
7/1/2010 160
0Gợi ý: 3
Tôi có một số dữ liệu hàng quý mà tôi cần đến AnyCodings_DateTime chuyển đổi thành hàng tháng để làm việc với bất kỳ bộ dữ liệu nào khác. Dữ liệu trông như thế này:, những gì tôi cần làm là áp đặt các giá trị cho AnyCodings_Datetime các tháng còn thiếu để nó trông giống như AnyCodings_Datetime này:, Điều gì sẽ là cách dễ dàng nhất để đi về bất kỳ , Không thể tìm thấy nhiều câu hỏi trước đây về cách nào Chỉ ngược lại [hàng tháng đến bất kỳ thế nào_datetime hàng quý]. Tôi đã thử một trong những phương pháp anycodings_dateTime ngược lại, nhưng nó không có công việc anycodings_dateTime:
Tôi có một số dữ liệu hàng quý mà tôi cần đến AnyCodings_DateTime chuyển đổi thành hàng tháng để làm việc với bất kỳ bộ dữ liệu nào khác. Dữ liệu trông như thế này:anycodings_datetime convert to monthly in order to work with anycodings_datetime another data set. The data looks like this:
Date Value
1/1/2010 100
2/1/2010 110
3/1/2010 120
4/1/2010 130
5/1/2010 140
6/1/2010 150
7/1/2010 160
1Những gì tôi cần làm là áp đặt các giá trị cho AnyCodings_DateTime các tháng còn thiếu để nó trông giống như AnyCodings_DateTime này:anycodings_datetime the missing months so that it looks like anycodings_datetime this:
Date Value
1/1/2010 100
2/1/2010 110
3/1/2010 120
4/1/2010 130
5/1/2010 140
6/1/2010 150
7/1/2010 160
2Không thể tìm thấy nhiều câu hỏi trước đây về cách nào anycodings_dateTime để làm điều này. Chỉ ngược lại [hàng tháng đến bất kỳ thế nào_datetime hàng quý]. Tôi đã thử một trong những phương pháp anycodings_dateTime ngược lại, nhưng nó không có công việc anycodings_dateTime:anycodings_datetime to do this. Only the reverse [monthly to anycodings_datetime quarterly]. I tried one of those anycodings_datetime methodologies in reverse, but it didn't anycodings_datetime work:
Date Value
1/1/2010 100
2/1/2010 110
3/1/2010 120
4/1/2010 130
5/1/2010 140
6/1/2010 150
7/1/2010 160
3Bạn có thể sử dụng Respress:
# convert to period df['Date'] = pd.to_datetime[df['Date']].dt.to_period['M'] # set Date as index and resample df.set_index['Date'].resample['M'].interpolate[]
Output:
Value Date 2010 - 01 100.0 2010 - 02 110.0 2010 - 03 120.0 2010 - 04 130.0 2010 - 05 140.0 2010 - 06 150.0 2010 - 07 160.0
Gợi ý: 4
Sử dụng dữ liệu được cung cấp, giả sử DF1 là hàng tháng và DF2 là hàng quý., Đặt chỉ mục và lấy mẫu dữ liệu hàng quý của bạn thành hàng tháng: bởi 3
Đặt chỉ mục và lấy mẫu dữ liệu hàng quý của bạn thành hàng tháng:
Date Value
1/1/2010 100
2/1/2010 110
3/1/2010 120
4/1/2010 130
5/1/2010 140
6/1/2010 150
7/1/2010 160
6Hợp nhất cả hai - Tôi cho rằng bạn muốn sản phẩm chứ không phải liên minh:
Date Value
1/1/2010 100
2/1/2010 110
3/1/2010 120
4/1/2010 130
5/1/2010 140
6/1/2010 150
7/1/2010 160
7