我有一個三列的熊貓資料框。A 列是日期時間型別,B 列是整數,C 列是浮點數,但對于這個問題并不重要。我的目標是將行添加到由 B 列中的每個值確定的資料框中,同時將 A 中的日期時間每增加一小時。
例如,給定這個資料框:
A B C
4/18/2021 1:00:00 3 1
4/20/2021 5:00:00 2 0
產生這個輸出:
A B C
4/18/2021 1:00:00 3 1
4/18/2021 2:00:00 3 1
4/18/2021 3:00:00 3 1
4/20/2021 5:00:00 2 0
4/20/2021 6:00:00 2 0
一種天真的方法是回圈遍歷資料幀的每一行,迭代地添加新行,但我更喜歡使用更有效的解決方案來操作資料。
uj5u.com熱心網友回復:
一種選擇是串列推導,然后是explode:
(df
.assign(
A = [pd.date_range(start = a, periods = b, freq='1H')
for a, b in zip(df.A, df.B)])
.explode('A')
)
A B C
0 2021-04-18 01:00:00 3 1
0 2021-04-18 02:00:00 3 1
0 2021-04-18 03:00:00 3 1
1 2021-04-20 05:00:00 2 0
1 2021-04-20 06:00:00 2 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/461324.html
下一篇:如何根據列值獲取資料框的子集?
